Skip to contentSkip to conversation

netlink: smaller nla_attr_minlen table

PATCH Applied Alexey Dobriyan 2 participants 2 messages Nov 18, 2016 – Nov 20, 2016

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 netlink: smaller nla_attr_minlen table

Length of a netlink attribute may be u16 but lengths of basic attributes are much smaller, so small we can save 16 bytes of .rodata and pocket change inside .text.

16-bit is worse on x86-64 than 8-bit because of operand size override prefix.

add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-19 (-19)
function old new delta
validate_nla 418 417 -1
nla_policy_len 66 64 -2
nla_attr_minlen 32 16 -16
Total: Before=154865051, After=154865032, chg -0.00%

---

 lib/nlattr.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
lib/nlattr.c +1 -1
@@ -14,7 +14,7 @@
 #include <linux/types.h>
 #include <net/netlink.h>
 
-static const u16 nla_attr_minlen[NLA_TYPE_MAX+1] = {
+static const u8 nla_attr_minlen[NLA_TYPE_MAX+1] = {
 	[NLA_U8]	= sizeof(u8),
 	[NLA_U16]	= sizeof(u16),
 	[NLA_U32]	= sizeof(u32),
maintainer Applied
#1 lore raw

From: Alexey Dobriyan <[email protected]>
Date: Sat, 19 Nov 2016 03:59:07 +0300

Quoted 5 lines

Length of a netlink attribute may be u16 but lengths of basic attributes are much smaller, so small we can save 16 bytes of .rodata and pocket change inside .text.

16-bit is worse on x86-64 than 8-bit because of operand size override prefix.

...

Quoted 1 line

Applied to net-next.