lkml.org 
[lkml]   [2022]   [Sep]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: amusing SLUB compaction bug when CC_OPTIMIZE_FOR_SIZE
    From
    On 9/29/22 13:53, David Laight wrote:
    >> -static void rcu_free_slab(struct rcu_head *h)
    >> +/*
    >> + * rcu_free_slab() must be __aligned(4) because its address is saved
    >> + * in the rcu_head field, which coincides with page->mapping, which
    >> + * causes trouble if compaction mistakes it for PAGE_MAPPING_MOVABLE.
    >> + */
    >> +__aligned(4) static void rcu_free_slab(struct rcu_head *h)
    >> {
    >> struct slab *slab = container_of(h, struct slab, rcu_head);
    >>
    >
    > Isn't that going to cause grief with options that align
    > functions on 16/32byte boundaries when adding space for
    > 'other stuff'?

    How is that done exactly? Also having higher alignment (16/32) is not in
    conflict with asking for 4?

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

    \
     
     \ /
      Last update: 2022-09-29 15:03    [W:3.949 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site