On Tue, Jun 27, 2017 at 2:56 AM, Oliver O'Halloran <[email protected]> wrote: > The alignment of a DAX and PFN regions dictates the page sizes that can > be used to map the region. Even if the hardware page sizes are known the > actual range of supported page sizes that can be used with DAX depends > on the kernel configuration. As a result its best that the kernel > advertises the alignments that should be used with these region types. > > This patch adds the 'supported_alignments' region attribute to expose > this information to userspace.
Agh, sorry I missed this for 4.13. > > Signed-off-by: Oliver O'Halloran <[email protected]> > --- > drivers/nvdimm/pfn_devs.c | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/drivers/nvdimm/pfn_devs.c b/drivers/nvdimm/pfn_devs.c > index 2ae9a000b090..505d50ef9a91 100644 > --- a/drivers/nvdimm/pfn_devs.c > +++ b/drivers/nvdimm/pfn_devs.c > @@ -260,6 +260,33 @@ static ssize_t size_show(struct device *dev, > } > static DEVICE_ATTR_RO(size); > > +static ssize_t supported_alignments_show(struct device *dev, > + struct device_attribute *attr, char *buf) > +{ > + /* > + * This needs to be a local variable because the *_SIZE macros > + * aren't always constants. > + */ > + unsigned long supported_alignments[] = { > + PAGE_SIZE, > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > + HPAGE_PMD_SIZE, > +#ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD > + HPAGE_PUD_SIZE, > +#endif > +#endif > + 0, > + }; > + > + return nd_sector_size_show(0, supported_alignments, buf); Can you go ahead and change nd_sector_size_show() to nd_size_list_show() or some other name to reflect that it's just a generic helper for an array of possibilities. _______________________________________________ Linux-nvdimm mailing list [email protected] https://lists.01.org/mailman/listinfo/linux-nvdimm
