]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
nvmet: reorder fields in 'struct nvmf_ctrl_options'
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Mon, 1 May 2023 12:40:27 +0000 (14:40 +0200)
committerKeith Busch <kbusch@kernel.org>
Mon, 12 Jun 2023 17:36:47 +0000 (10:36 -0700)
Group some variables based on their sizes to reduce holes.
On x86_64, this shrinks the size of 'struct nvmf_ctrl_options' from 136 to
128 bytes.

When such a structure is allocated in nvmf_create_ctrl(), because of the
way memory allocation works, when 136 bytes were requested, 192 bytes were
allocated.

So this saves 64 bytes per allocation, 1 cache line to hold the whole
structure and a few cycles when zeroing the memory in nvmf_create_ctrl().

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/host/fabrics.h

index e438d67a319b57e3e915ba1a2762d039eae1c2d4..b78dc3b9850817001800ce87f793d4a528d958f4 100644 (file)
@@ -77,6 +77,9 @@ enum {
  *                           with the parsing opts enum.
  * @mask:      Used by the fabrics library to parse through sysfs options
  *             on adding a NVMe controller.
+ * @max_reconnects: maximum number of allowed reconnect attempts before removing
+ *             the controller, (-1) means reconnect forever, zero means remove
+ *             immediately;
  * @transport: Holds the fabric transport "technology name" (for a lack of
  *             better description) that will be used by an NVMe controller
  *             being added.
@@ -96,9 +99,6 @@ enum {
  * @discovery_nqn: indicates if the subsysnqn is the well-known discovery NQN.
  * @kato:      Keep-alive timeout.
  * @host:      Virtual NVMe host, contains the NQN and Host ID.
- * @max_reconnects: maximum number of allowed reconnect attempts before removing
- *              the controller, (-1) means reconnect forever, zero means remove
- *              immediately;
  * @dhchap_secret: DH-HMAC-CHAP secret
  * @dhchap_ctrl_secret: DH-HMAC-CHAP controller secret for bi-directional
  *              authentication
@@ -112,6 +112,7 @@ enum {
  */
 struct nvmf_ctrl_options {
        unsigned                mask;
+       int                     max_reconnects;
        char                    *transport;
        char                    *subsysnqn;
        char                    *traddr;
@@ -125,7 +126,6 @@ struct nvmf_ctrl_options {
        bool                    duplicate_connect;
        unsigned int            kato;
        struct nvmf_host        *host;
-       int                     max_reconnects;
        char                    *dhchap_secret;
        char                    *dhchap_ctrl_secret;
        bool                    disable_sqflow;