RE: [PATCH 0/7] minmax: reduce compilation time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



...
> and it will spit out
> 
>   Longest line is drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c:1136 (2346kB)
>      '   ((((((pkt_size) + __builtin_choose_expr((sizeof(int) ==
> sizeof(*(8 ? ((void *)((long)((__builtin_...'
> 
> to tell me that we have that insane 2.2 *megabyte* line due to the
> MVPP2_SKB_HEADROOM thing, and I should apply this patch:
> 
> -#define MVPP2_SKB_HEADROOM     min(max(XDP_PACKET_HEADROOM, NET_SKB_PAD), 224)
> +#define MVPP2_SKB_HEADROOM
> MIN_T(int,MAX_T(int,XDP_PACKET_HEADROOM, NET_SKB_PAD), 224)
> 
> to fix it.

Or (if I've got is right):
#define MVPP2_SKB_HEADROOM clamp(XDP_PACKET_HEADROOM, NET_SKB_PAD, 224)

Hmmm...
I've found:
#define XDP_PACKET_HEADROOM 256
#define NET_SKB_PAD max(32, L1_CACHE_BYTES)
I'd bet that some architecture even has a non-constant L1_CACHE_BYTES.

But the 256 means the headroom is always 224 (whatever that limit is related to).

It is definitely worth freeing up MIN() and MAX() for:
#define MIN(x, y) ( \
	BUILD_BUG_ON_ZERO(__is_constexpr((x) + (y)) + ((x) < (y) ? (x) : (y)))
which is then usable for static initialisers.
Just assuming that no one is silly enough to get a negative constant
compared to an unsigned value.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux