lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <k2h412e6f7f1004250103g3fbce599r8337fdb781317158@mail.gmail.com> Date: Sun, 25 Apr 2010 16:03:03 +0800 From: Changli Gao <xiaosuo@...il.com> To: David Miller <davem@...emloft.net> Cc: therbert@...gle.com, eric.dumazet@...il.com, netdev@...r.kernel.org Subject: Re: [PATCH v3] rps: optimize rps_get_cpu() On Sun, Apr 25, 2010 at 3:48 PM, David Miller <davem@...emloft.net> wrote: > > Nevermind, currently we only depend upon the addresses in struct sock > being 64-bit aligned not the protocol headers. > > It shouldn't be hard to make the protocol header addresses 64-bit > aligned too. Simply setting the default NET_IP_ALIGN to '6' instead > of '2' ought to be sufficient. > > skb->data upon alloc_skb() is 64-bit aligned. > > So if we skb_reserve(NET_IP_ALIGN '6'), then we have the ethernet > header (14 bytes). And since 'saddr' is 12 bytes into struct iphdr it > will be (6 + 14 + 12) == 32 bytes in from the original 64-bit aligned > skb->data. > > Therefore, since skb->data is 64-bit aligned, skb->data plus a > multiple of 8 (which 32 is) will also be 64-bit aligned, and that > means iph->saddr will be 64-bit aligned. > But if there is a vlan header, extra 4-bytes are appended to the ethernet header, so the addresses aren't aligned to 64-bit boundary when we set NET_IP_ALIGN to 6. -- Regards, Changli Gao(xiaosuo@...il.com) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists