On Wed, 2016-05-11 at 10:05 +0200, Jan Kara wrote:
> On Tue 10-05-16 10:23:57, Toshi Kani wrote:
> > 
> > blkdev_dax_capable() is similar to bdev_dax_supported(), but needs
> > to remain as a separate interface for checking dax capability of
> > a raw block device.
> > 
> > Rename and relocate blkdev_dax_capable() to keep them maintained
> > consistently, and call bdev_direct_access() for the dax capability
> > check.
> ...
> > 
> > +bool bdev_dax_capable(struct block_device *bdev)
> > +{
> > +   struct gendisk *disk = bdev->bd_disk;
> > +   struct blk_dax_ctl dax = {
> > +           .size = PAGE_SIZE,
> > +   };
> > +
> > +   if (!IS_ENABLED(CONFIG_FS_DAX))
> > +           return false;
>
> Frankly, I prefer the #ifdef CONFIG_FS_DAX and just compile the code out
> when DAX is not enabled (like it was with blkdev_dax_capable()). That way
> we don't grow the kernel for people who don't care about DAX.

When CONFIG_FS_DAX is not set, the rest of the code is optimized out.  So,
I think the code size is the same.

(gdb) disas bdev_dax_capable
Dump of assembler code for function bdev_dax_capable:
   0xffffffff81260d20 <+0>:     callq  0xffffffff81813c30 <__fentry__>
   0xffffffff81260d25 <+5>:     push   %rbp
   0xffffffff81260d26 <+6>:     xor    %eax,%eax
   0xffffffff81260d28 <+8>:     mov    %rsp,%rbp
   0xffffffff81260d2b <+11>:    pop    %rbp
   0xffffffff81260d2c <+12>:    retq   
End of assembler dump.

Thanks,
-Toshi

Reply via email to