svn commit: r243409 - user/andre/tcp_workqueue/sys/sys

Andre Oppermann andre at FreeBSD.org
Thu Nov 22 16:48:58 UTC 2012


Author: andre
Date: Thu Nov 22 16:48:58 2012
New Revision: 243409
URL: http://svnweb.freebsd.org/changeset/base/243409

Log:
  lign and pad the mbuf header structures using the __aligned()
  attribute instead of manual padding.
  
  The alignment and padding is set to sizeof(void *) to align to
  the native pointer width on all architectures.

Modified:
  user/andre/tcp_workqueue/sys/sys/mbuf.h

Modified: user/andre/tcp_workqueue/sys/sys/mbuf.h
==============================================================================
--- user/andre/tcp_workqueue/sys/sys/mbuf.h	Thu Nov 22 16:20:08 2012	(r243408)
+++ user/andre/tcp_workqueue/sys/sys/mbuf.h	Thu Nov 22 16:48:58 2012	(r243409)
@@ -79,12 +79,6 @@ struct mb_args {
 };
 #endif /* _KERNEL */
 
-#if defined(__LP64__)
-#define M_HDR_PAD    6
-#else
-#define M_HDR_PAD    2
-#endif
-
 /*
  * Header present at the beginning of every mbuf.
  */
@@ -94,8 +88,7 @@ struct m_hdr {
 	int		 mh_len;	/* amount of data in this mbuf */
 	int		 mh_flags;	/* flags; see below */
 	short		 mh_type;	/* type of data in this mbuf */
-	uint8_t          pad[M_HDR_PAD];/* word align                  */
-};
+} __aligned(sizeof(void *));
 
 /*
  * Packet tag structure (see below for details).
@@ -137,7 +130,7 @@ struct pkthdr {
 		u_int16_t vt_nrecs;	/* # of IGMPv3 records in this chain */
 	} PH_vt;
 	SLIST_HEAD(packet_tags, m_tag) tags; /* list of packet tags */
-};
+} __aligned(sizeof(void *));
 #define	csum_data	PH_cd.cd_data
 #define	csum_l2hlen	PH_cd.PHCD_hdr.l2hlen
 #define	csum_l3hlen	PH_cd.PHCD_hdr.l3hlen
@@ -157,7 +150,7 @@ struct m_ext {
 	u_int		 ext_size;	/* size of buffer, for ext_free */
 	volatile u_int	*ref_cnt;	/* pointer to ref count info */
 	int		 ext_type;	/* type of external storage */
-};
+} __aligned(sizeof(void *));
 
 /*
  * The core of the mbuf object along with some shortcut defines for practical


More information about the svn-src-user mailing list