From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Danielle Ratson <danieller@nvidia.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, corbet@lwn.net,
sdf@google.com, kory.maincent@bootlin.com,
maxime.chevallier@bootlin.com, vladimir.oltean@nxp.com,
przemyslaw.kitszel@intel.com, ahmed.zaki@intel.com,
richardcochran@gmail.com, shayagr@amazon.com,
paul.greenwalt@intel.com, jiri@resnulli.us,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
mlxsw@nvidia.com, petrm@nvidia.com, idosch@nvidia.com
Subject: Re: [RFC PATCH net-next 7/9] ethtool: cmis_cdb: Add a layer for supporting CDB commands
Date: Tue, 23 Jan 2024 17:17:46 +0000 [thread overview]
Message-ID: <Za/0um6oUo3CQaR2@shell.armlinux.org.uk> (raw)
In-Reply-To: <20240122084530.32451-8-danieller@nvidia.com>
On Mon, Jan 22, 2024 at 10:45:28AM +0200, Danielle Ratson wrote:
> +int ethtool_cmis_page_init(struct ethtool_module_eeprom *page_data,
> + u8 page, u32 offset, u32 length)
> +{
> + page_data->page = page;
> + page_data->offset = offset;
> + page_data->length = length;
> + page_data->i2c_address = ETHTOOL_CMIS_CDB_PAGE_I2C_ADDR;
> + page_data->data = kmalloc(page_data->length, GFP_KERNEL);
> + if (!page_data->data)
> + return -ENOMEM;
Hmm, so every use is forced to use kmalloc() even when it's just one
byte? That seems rather wasteful.
> +/* See section 9.4.1 "CMD 0040h: Module Features" in CMIS standard revision 5.2.
> + * struct cmis_cdb_module_features_rpl is structured layout of the flat
> + * array, ethtool_cmis_cdb_rpl::payload.
> + */
> +struct cmis_cdb_module_features_rpl {
> + u8 resv1[CMIS_CDB_MODULE_FEATURES_RESV_DATA];
> + __be16 max_completion_time;
> +};
Does this structure need to be packed? I would suggest it does to
ensure that the __be16 is correctly placed after the 34 bytes of u8.
Overall, I think the idea of always kmalloc()ing the data is a bad idea
at the moment. We have no implementations that DMA to/from this buffer,
and it means extra cycles spent, and an extra failure point each time
we want to do a CMIS command.
It also introduces extra complexity, where we could just be passing
a pointer to a function local variable or function local structure.
Unless we decide that the data pointer should be DMA-able from (in
which case, that needs documenting as such) then I would suggest
getting rid of the extra kmalloc()...kfree() bits.
Thanks.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2024-01-23 17:17 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-22 8:45 [RFC PATCH net-next 0/9] Add ability to flash modules' firmware Danielle Ratson
2024-01-22 8:45 ` [RFC PATCH net-next 1/9] ethtool: Add ethtool operation to write to a transceiver module EEPROM Danielle Ratson
2024-01-23 17:03 ` Russell King (Oracle)
2024-01-24 13:10 ` Danielle Ratson
2024-01-25 20:26 ` Andrew Lunn
2024-01-25 20:45 ` Andrew Lunn
2024-01-30 7:43 ` Danielle Ratson
2024-01-31 11:51 ` Danielle Ratson
2024-01-22 8:45 ` [RFC PATCH net-next 2/9] mlxsw: Implement " Danielle Ratson
2024-01-22 8:45 ` [RFC PATCH net-next 3/9] ethtool: Add an interface for flashing transceiver modules' firmware Danielle Ratson
2024-01-23 1:37 ` Jakub Kicinski
2024-01-23 4:50 ` Jakub Kicinski
2024-01-23 13:34 ` Danielle Ratson
2024-01-23 15:53 ` Jakub Kicinski
2024-01-22 8:45 ` [RFC PATCH net-next 4/9] ethtool: Add flashing transceiver modules' firmware notifications ability Danielle Ratson
2024-01-22 8:45 ` [RFC PATCH net-next 5/9] include: netdevice: Add module firmware flashing in progress flag to net_device Danielle Ratson
2024-01-22 8:45 ` [RFC PATCH net-next 6/9] net: sfp: Add more extended compliance codes Danielle Ratson
2024-01-23 17:09 ` Russell King (Oracle)
2024-01-22 8:45 ` [RFC PATCH net-next 7/9] ethtool: cmis_cdb: Add a layer for supporting CDB commands Danielle Ratson
2024-01-22 10:31 ` Simon Horman
2024-01-22 14:35 ` Danielle Ratson
2024-01-22 20:03 ` Simon Horman
2024-01-23 17:17 ` Russell King (Oracle) [this message]
2024-01-30 7:55 ` Danielle Ratson
2024-01-22 8:45 ` [RFC PATCH net-next 8/9] ethtool: cmis_fw_update: add a layer for supporting firmware update using CDB Danielle Ratson
2024-01-23 4:44 ` Jakub Kicinski
2024-01-23 12:08 ` Danielle Ratson
2024-01-23 5:07 ` Jakub Kicinski
2024-01-22 8:45 ` [RFC PATCH net-next 9/9] ethtool: Add ability to flash transceiver modules' firmware Danielle Ratson
2024-01-22 10:37 ` Simon Horman
2024-01-22 15:25 ` Danielle Ratson
2024-01-23 5:05 ` Jakub Kicinski
2024-01-23 13:05 ` Danielle Ratson
2024-01-23 15:49 ` Jakub Kicinski
2024-01-24 15:46 ` Danielle Ratson
2024-01-24 17:06 ` Jakub Kicinski
2024-01-23 16:27 ` Russell King (Oracle)
2024-01-24 13:11 ` Danielle Ratson
2024-01-25 21:03 ` Andrew Lunn
2024-01-31 15:48 ` Danielle Ratson
2024-01-31 15:52 ` Danielle Ratson
2024-01-31 16:30 ` Andrew Lunn
2024-04-08 12:50 ` Danielle Ratson
2024-04-08 23:53 ` Andrew Lunn
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=Za/0um6oUo3CQaR2@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=ahmed.zaki@intel.com \
--cc=corbet@lwn.net \
--cc=danieller@nvidia.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=idosch@nvidia.com \
--cc=jiri@resnulli.us \
--cc=kory.maincent@bootlin.com \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.chevallier@bootlin.com \
--cc=mlxsw@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=paul.greenwalt@intel.com \
--cc=petrm@nvidia.com \
--cc=przemyslaw.kitszel@intel.com \
--cc=richardcochran@gmail.com \
--cc=sdf@google.com \
--cc=shayagr@amazon.com \
--cc=vladimir.oltean@nxp.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: link
Be 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.