diff mbox series

[net-next,08/12] iavf: Refactor iavf_mac_filter struct memory usage

Message ID 20211124171652.831184-9-anthony.l.nguyen@intel.com (mailing list archive)
State Changes Requested
Delegated to: Netdev Maintainers
Headers show
Series 40GbE Intel Wired LAN Driver Updates 2021-11-24 | expand

Commit Message

Tony Nguyen Nov. 24, 2021, 5:16 p.m. UTC
From: Jedrzej Jagielski <jedrzej.jagielski@intel.com>

iavf_mac_filter struct contained couple boolean
flags using up more memory than is necessary.
Change the flags to be bitfields in an anonymous struct
so all the flags now fit in one byte.

Signed-off-by: Sylwester Dziedziuch <sylwesterx.dziedziuch@intel.com>
Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 drivers/net/ethernet/intel/iavf/iavf.h | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Jakub Kicinski Nov. 24, 2021, 11:49 p.m. UTC | #1
On Wed, 24 Nov 2021 09:16:48 -0800 Tony Nguyen wrote:
> -	bool is_new_mac;	/* filter is new, wait for PF decision */
> -	bool remove;		/* filter needs to be removed */
> -	bool add;		/* filter needs to be added */
> +	struct {
> +		u8 is_new_mac:1;    /* filter is new, wait for PF decision */
> +		u8 remove:1;        /* filter needs to be removed */
> +		u8 add:1;           /* filter needs to be added */
> +		u8 is_primary:1;    /* filter is a default VF MAC */
> +		u8 padding:4;
> +	};

Why did you wrap it in a struct? Just curious.
Jedrzej Jagielski Nov. 26, 2021, 10:13 a.m. UTC | #2
Hello,

Just to group them so they all occupy one memory chunk and for it to be clear how and where to add new ones in the future.


-----Original Message-----
From: Jakub Kicinski <kuba@kernel.org> 
Sent: czwartek, 25 listopada 2021 00:50
To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>
Cc: davem@davemloft.net; Jagielski, Jedrzej <jedrzej.jagielski@intel.com>; netdev@vger.kernel.org; sassmann@redhat.com; Dziedziuch, SylwesterX <sylwesterx.dziedziuch@intel.com>; Jankowski, Konrad0 <konrad0.jankowski@intel.com>
Subject: Re: [PATCH net-next 08/12] iavf: Refactor iavf_mac_filter struct memory usage

On Wed, 24 Nov 2021 09:16:48 -0800 Tony Nguyen wrote:
> -	bool is_new_mac;	/* filter is new, wait for PF decision */
> -	bool remove;		/* filter needs to be removed */
> -	bool add;		/* filter needs to be added */
> +	struct {
> +		u8 is_new_mac:1;    /* filter is new, wait for PF decision */
> +		u8 remove:1;        /* filter needs to be removed */
> +		u8 add:1;           /* filter needs to be added */
> +		u8 is_primary:1;    /* filter is a default VF MAC */
> +		u8 padding:4;
> +	};

Why did you wrap it in a struct? Just curious.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/iavf/iavf.h b/drivers/net/ethernet/intel/iavf/iavf.h
index 75635bd57cf6..526d424a439d 100644
--- a/drivers/net/ethernet/intel/iavf/iavf.h
+++ b/drivers/net/ethernet/intel/iavf/iavf.h
@@ -137,9 +137,13 @@  struct iavf_q_vector {
 struct iavf_mac_filter {
 	struct list_head list;
 	u8 macaddr[ETH_ALEN];
-	bool is_new_mac;	/* filter is new, wait for PF decision */
-	bool remove;		/* filter needs to be removed */
-	bool add;		/* filter needs to be added */
+	struct {
+		u8 is_new_mac:1;    /* filter is new, wait for PF decision */
+		u8 remove:1;        /* filter needs to be removed */
+		u8 add:1;           /* filter needs to be added */
+		u8 is_primary:1;    /* filter is a default VF MAC */
+		u8 padding:4;
+	};
 };
 
 struct iavf_vlan_filter {