From: "Ardelean, Alexandru" <alexandru.Ardelean@analog.com> To: "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-stm32@st-md-mailman.stormreply.com" <linux-stm32@st-md-mailman.stormreply.com>, "Sa, Nuno" <Nuno.Sa@analog.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org> Cc: "ludovic.desroches@microchip.com" <ludovic.desroches@microchip.com>, "nicolas.ferre@microchip.com" <nicolas.ferre@microchip.com>, "alexandre.torgue@st.com" <alexandre.torgue@st.com>, "ak@it-klinger.de" <ak@it-klinger.de>, "jic23@kernel.org" <jic23@kernel.org>, "eugen.hristev@microchip.com" <eugen.hristev@microchip.com>, "mcoquelin.stm32@gmail.com" <mcoquelin.stm32@gmail.com>, "alexandre.belloni@bootlin.com" <alexandre.belloni@bootlin.com> Subject: Re: [PATCH v2 7/8] iio: core: simplify alloc alignment code Date: Fri, 15 May 2020 11:47:59 +0000 [thread overview] Message-ID: <1d89df334b08486e73ca181cf9035d9af8fbccf2.camel@analog.com> (raw) In-Reply-To: <BN6PR03MB33472A1B559F98E3BDCAB40B99BD0@BN6PR03MB3347.namprd03.prod.outlook.com> On Fri, 2020-05-15 at 07:12 +0000, Sa, Nuno wrote: > Hey Alex, > > Just a small question... > > > From: linux-iio-owner@vger.kernel.org <linux-iio-owner@vger.kernel.org> > > On Behalf Of Alexandru Ardelean > > Sent: Donnerstag, 14. Mai 2020 15:17 > > To: linux-iio@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux- > > stm32@st-md-mailman.stormreply.com; linux-kernel@vger.kernel.org > > Cc: ludovic.desroches@microchip.com; eugen.hristev@microchip.com; > > jic23@kernel.org; nicolas.ferre@microchip.com; > > alexandre.belloni@bootlin.com; alexandre.torgue@st.com; > > mcoquelin.stm32@gmail.com; ak@it-klinger.de; Ardelean, Alexandru > > <alexandru.Ardelean@analog.com> > > Subject: [PATCH v2 7/8] iio: core: simplify alloc alignment code > > > > There was a recent discussion about this code: > > https://urldefense.com/v3/__https://lore.kernel.org/linux- > > iio/20200322165317.0b1f0674@archlinux/__;!!A3Ni8CS0y2Y!pgdUSayJCfxMiE > > w8Fpv0LkEZurCSkX0sEcLnXeDSCLmhpu1xont6-vBQj3ZbCw$ > > > > This looks like a good time to rework this, since any issues about it > > should pop-up under testing, because the iio_dev is having a bit of an > > overhaul and stuff being moved to iio_dev_priv. > > > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> > > --- > > drivers/iio/industrialio-core.c | 10 +++------- > > 1 file changed, 3 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio- > > core.c > > index a1b29e0f8fd6..7671d36efae7 100644 > > --- a/drivers/iio/industrialio-core.c > > +++ b/drivers/iio/industrialio-core.c > > @@ -1514,13 +1514,9 @@ struct iio_dev *iio_device_alloc(int sizeof_priv) > > struct iio_dev *dev; > > size_t alloc_size; > > > > - alloc_size = sizeof(struct iio_dev_opaque); > > - if (sizeof_priv) { > > - alloc_size = ALIGN(alloc_size, IIO_ALIGN); > > - alloc_size += sizeof_priv; > > - } > > - /* ensure 32-byte alignment of whole construct ? */ > > - alloc_size += IIO_ALIGN - 1; > > + alloc_size = ALIGN(sizeof(struct iio_dev_opaque), IIO_ALIGN); > > + if (sizeof_priv) > > + alloc_size += ALIGN(sizeof_priv, IIO_ALIGN); > > Do we actually need to do the `ALIGN` again? It seems to me that `alloc_size > += sizeof_priv` > would be enough or am I missing something obvious? Well, it's not always clear what value 'sizeof_priv' has, and whether it is provided already aligned. The requirement is usually that this data be cacheline aligned. So, sizeof(struct iio_dev_opaque) is aligned already a few lines above, but the private information should also be aligned [given that it's an unknown value provided by the driver]. I think this is mostly important, if we need to do DMA access to buffers allocated on the driver's state-struct, which is allocated here, and which is usually provided as sizeof_priv. Tbh, the discussions around this alignment/cacheline-alignment are a bit fuzzy to me. I haven't run into any of these complicated issues. > > - Nuno Sá >
WARNING: multiple messages have this Message-ID (diff)
From: "Ardelean, Alexandru" <alexandru.Ardelean@analog.com> To: "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-stm32@st-md-mailman.stormreply.com" <linux-stm32@st-md-mailman.stormreply.com>, "Sa, Nuno" <Nuno.Sa@analog.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org> Cc: "alexandre.belloni@bootlin.com" <alexandre.belloni@bootlin.com>, "alexandre.torgue@st.com" <alexandre.torgue@st.com>, "ludovic.desroches@microchip.com" <ludovic.desroches@microchip.com>, "ak@it-klinger.de" <ak@it-klinger.de>, "mcoquelin.stm32@gmail.com" <mcoquelin.stm32@gmail.com>, "eugen.hristev@microchip.com" <eugen.hristev@microchip.com>, "jic23@kernel.org" <jic23@kernel.org> Subject: Re: [PATCH v2 7/8] iio: core: simplify alloc alignment code Date: Fri, 15 May 2020 11:47:59 +0000 [thread overview] Message-ID: <1d89df334b08486e73ca181cf9035d9af8fbccf2.camel@analog.com> (raw) In-Reply-To: <BN6PR03MB33472A1B559F98E3BDCAB40B99BD0@BN6PR03MB3347.namprd03.prod.outlook.com> On Fri, 2020-05-15 at 07:12 +0000, Sa, Nuno wrote: > Hey Alex, > > Just a small question... > > > From: linux-iio-owner@vger.kernel.org <linux-iio-owner@vger.kernel.org> > > On Behalf Of Alexandru Ardelean > > Sent: Donnerstag, 14. Mai 2020 15:17 > > To: linux-iio@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux- > > stm32@st-md-mailman.stormreply.com; linux-kernel@vger.kernel.org > > Cc: ludovic.desroches@microchip.com; eugen.hristev@microchip.com; > > jic23@kernel.org; nicolas.ferre@microchip.com; > > alexandre.belloni@bootlin.com; alexandre.torgue@st.com; > > mcoquelin.stm32@gmail.com; ak@it-klinger.de; Ardelean, Alexandru > > <alexandru.Ardelean@analog.com> > > Subject: [PATCH v2 7/8] iio: core: simplify alloc alignment code > > > > There was a recent discussion about this code: > > https://urldefense.com/v3/__https://lore.kernel.org/linux- > > iio/20200322165317.0b1f0674@archlinux/__;!!A3Ni8CS0y2Y!pgdUSayJCfxMiE > > w8Fpv0LkEZurCSkX0sEcLnXeDSCLmhpu1xont6-vBQj3ZbCw$ > > > > This looks like a good time to rework this, since any issues about it > > should pop-up under testing, because the iio_dev is having a bit of an > > overhaul and stuff being moved to iio_dev_priv. > > > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> > > --- > > drivers/iio/industrialio-core.c | 10 +++------- > > 1 file changed, 3 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio- > > core.c > > index a1b29e0f8fd6..7671d36efae7 100644 > > --- a/drivers/iio/industrialio-core.c > > +++ b/drivers/iio/industrialio-core.c > > @@ -1514,13 +1514,9 @@ struct iio_dev *iio_device_alloc(int sizeof_priv) > > struct iio_dev *dev; > > size_t alloc_size; > > > > - alloc_size = sizeof(struct iio_dev_opaque); > > - if (sizeof_priv) { > > - alloc_size = ALIGN(alloc_size, IIO_ALIGN); > > - alloc_size += sizeof_priv; > > - } > > - /* ensure 32-byte alignment of whole construct ? */ > > - alloc_size += IIO_ALIGN - 1; > > + alloc_size = ALIGN(sizeof(struct iio_dev_opaque), IIO_ALIGN); > > + if (sizeof_priv) > > + alloc_size += ALIGN(sizeof_priv, IIO_ALIGN); > > Do we actually need to do the `ALIGN` again? It seems to me that `alloc_size > += sizeof_priv` > would be enough or am I missing something obvious? Well, it's not always clear what value 'sizeof_priv' has, and whether it is provided already aligned. The requirement is usually that this data be cacheline aligned. So, sizeof(struct iio_dev_opaque) is aligned already a few lines above, but the private information should also be aligned [given that it's an unknown value provided by the driver]. I think this is mostly important, if we need to do DMA access to buffers allocated on the driver's state-struct, which is allocated here, and which is usually provided as sizeof_priv. Tbh, the discussions around this alignment/cacheline-alignment are a bit fuzzy to me. I haven't run into any of these complicated issues. > > - Nuno Sá > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-05-15 11:48 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-14 13:17 [PATCH v2 0/8] iio: core: wrap IIO device into an iio_dev_opaque object Alexandru Ardelean 2020-05-14 13:17 ` Alexandru Ardelean 2020-05-14 13:17 ` [PATCH v2 1/8] iio: proximity: ping: pass reference to IIO device via call-stack Alexandru Ardelean 2020-05-14 13:17 ` Alexandru Ardelean 2020-05-16 17:12 ` Jonathan Cameron 2020-05-16 17:12 ` Jonathan Cameron 2020-05-14 13:17 ` [PATCH v2 2/8] iio: at91-sama5d2_adc: pass ref to IIO device via param for int function Alexandru Ardelean 2020-05-14 13:17 ` Alexandru Ardelean 2020-05-16 17:15 ` Jonathan Cameron 2020-05-16 17:15 ` Jonathan Cameron 2020-05-14 13:17 ` [PATCH v2 3/8] iio: at91_adc: " Alexandru Ardelean 2020-05-14 13:17 ` Alexandru Ardelean 2020-05-16 17:17 ` Jonathan Cameron 2020-05-16 17:17 ` Jonathan Cameron 2020-05-18 8:32 ` Ardelean, Alexandru 2020-05-18 8:32 ` Ardelean, Alexandru 2020-05-21 18:19 ` Jonathan Cameron 2020-05-21 18:19 ` Jonathan Cameron 2020-05-14 13:17 ` [PATCH v2 4/8] iio: stm32-dfsdm-adc: pass iio device as arg for the interrupt handler Alexandru Ardelean 2020-05-14 13:17 ` Alexandru Ardelean 2020-05-16 17:20 ` Jonathan Cameron 2020-05-16 17:20 ` Jonathan Cameron 2020-05-14 13:17 ` [PATCH v2 5/8] iio: stm32-adc: " Alexandru Ardelean 2020-05-14 13:17 ` Alexandru Ardelean 2020-05-16 17:21 ` Jonathan Cameron 2020-05-16 17:21 ` Jonathan Cameron 2020-05-14 13:17 ` [PATCH v2 6/8] iio: core: wrap IIO device into an iio_dev_opaque object Alexandru Ardelean 2020-05-14 13:17 ` Alexandru Ardelean 2020-05-16 17:28 ` Jonathan Cameron 2020-05-16 17:28 ` Jonathan Cameron 2020-05-14 13:17 ` [PATCH v2 7/8] iio: core: simplify alloc alignment code Alexandru Ardelean 2020-05-14 13:17 ` Alexandru Ardelean 2020-05-15 7:12 ` Sa, Nuno 2020-05-15 7:12 ` Sa, Nuno 2020-05-15 11:47 ` Ardelean, Alexandru [this message] 2020-05-15 11:47 ` Ardelean, Alexandru 2020-05-15 12:37 ` Sa, Nuno 2020-05-15 12:37 ` Sa, Nuno 2020-05-16 17:30 ` Jonathan Cameron 2020-05-16 17:30 ` Jonathan Cameron 2020-05-14 13:17 ` [PATCH v2 8/8] iio: core: move debugfs data on the private iio dev info Alexandru Ardelean 2020-05-14 13:17 ` Alexandru Ardelean 2020-05-22 6:58 ` [PATCH v2 0/8] iio: core: wrap IIO device into an iio_dev_opaque object Ardelean, Alexandru 2020-05-22 6:58 ` Ardelean, Alexandru
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1d89df334b08486e73ca181cf9035d9af8fbccf2.camel@analog.com \ --to=alexandru.ardelean@analog.com \ --cc=Nuno.Sa@analog.com \ --cc=ak@it-klinger.de \ --cc=alexandre.belloni@bootlin.com \ --cc=alexandre.torgue@st.com \ --cc=eugen.hristev@microchip.com \ --cc=jic23@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-iio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-stm32@st-md-mailman.stormreply.com \ --cc=ludovic.desroches@microchip.com \ --cc=mcoquelin.stm32@gmail.com \ --cc=nicolas.ferre@microchip.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.