lkml.org 
[lkml]   [2009]   [Apr]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/9] bio-cgroup controller
    * Andrea Righi <righi.andrea@gmail.com> [2009-04-20 16:56:59]:

    > On Mon, Apr 20, 2009 at 08:35:40PM +0900, Ryo Tsuruta wrote:
    > > > > +/*
    > > > > + * Assign "page" the same owner as "opage."
    > > > > + */
    > > > > +void bio_cgroup_copy_owner(struct page *npage, struct page *opage)
    > > > > +{
    > > > > + struct page_cgroup *npc, *opc;
    > > > > +
    > > > > + if (bio_cgroup_disabled())
    > > > > + return;
    > > > > + npc = lookup_page_cgroup(npage);
    > > > > + if (unlikely(!npc))
    > > > > + return;
    > > > > + opc = lookup_page_cgroup(opage);
    > > > > + if (unlikely(!opc))
    > > > > + return;
    > > > > +
    > > > > + /*
    > > > > + * Do this without any locks. The reason is the same as
    > > > > + * bio_cgroup_reset_owner().
    > > > > + */
    > > > > + npc->bio_cgroup_id = opc->bio_cgroup_id;
    > > >
    > > > What protects npc and opc?
    > >
    > > As the same reason mentioned above, bio_cgroup_id can be updated
    > > without any locks, and npc and opc always point to page_cgroups.
    > > An integer variable can be set a new value at once on a system which
    > > can use RCU lock.
    >
    > mmmh... I'm not sure about this. Actually you read opc->bio_cgroup_id
    > first and then write to npc->bio_cgroup_id, so it is not atomic at all.
    > So, you can read or set a wrong ID, but at least it should be always
    > consistent (the single read or write itself is atomic).

    Quick concern here, how long does it take for the data to become
    consistent? Can we have a group misuse the bandwidth during that time?
    What about conditions where you have a wrong ID, but the group
    associated with the wrong ID is gone?

    --
    Balbir


    \
     
     \ /
      Last update: 2009-04-21 17:35    [W:0.024 / U:0.068 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site