lkml.org 
[lkml]   [2013]   [Aug]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 0/2] Protect cpu map updates from ACPI processor
    From
    Date
    On Tue, 2013-08-13 at 02:43 +0200, Rafael J. Wysocki wrote:
    > On Monday, August 12, 2013 09:45:52 AM Toshi Kani wrote:
    > > CPU system maps are protected with reader/writer locks. The reader
    > > lock, put_online_cpus(), assures that the maps are not updated while
    > > holding the lock. The writer lock, cpu_hotplug_begin(), is used to
    > > udpate the cpu maps along with cpu_maps_update_begin().
    > >
    > > However, the ACPI processor handler updates the cpu maps without
    > > holding the the writer lock. This patchset fixes this problem.
    > >
    > > ---
    > > The patchset is based on linux-next of the pm tree.
    >
    > Basically looks OK to me, but I'd just merge the patches together,
    > because the [2/2] is the very reason for the change made by [1/2].

    I separated for reviewing purpose, but yes, they can be together. Let
    me know if you need me to re-send it together.

    > Also it would be good to mention the actual scenario that may lead
    > to problems with that.

    For example, the get_online_cpus() below is supposed to assure that
    cpu_possible_mask is not changed while the code is iterating with
    for_each_possible_cpu().

    get_online_cpus();
    for_each_possible_cpu(cpu) {
    :
    }
    put_online_cpus();

    However, this lock has no protection with CPU hotplug since the ACPI
    processor handler does not use the writer lock when it updates
    cpu_possible_mask. The reader lock does not serialize within the
    readers.

    Thanks,
    -Toshi





    \
     
     \ /
      Last update: 2013-08-13 03:21    [W:2.369 / U:0.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site