[lkml]   [2012]   [May]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectRe: [RFC PATCH v1 3/5] KVM: Add paravirt kvm_flush_tlb_others
    On Tue, 2012-05-01 at 18:36 +0300, Avi Kivity wrote:

    > > > What bounds the amount of memory waiting to be freed during an rcu grace
    > > > period?
    > >
    > > Most RCU implementations don't have limits, so that could be quite a
    > > lot. I think preemptible RCU has a batch limit at which point it tries
    > > rather hard to force a grace period, but I'm not sure if even that
    > > provides a hard limit.
    > >
    > > Practically though, I haven't had reports of PPC/Sparc going funny
    > > because of this.
    > It could be considered a DoS if a user is able to free page tables
    > faster than rcu is able to recycle them, possibly triggering the oom
    > killer (should that force a grace period before firing from the hip?)

    One would think that would be a good thing, yes. However I cannot seem
    to find anything like that in the current OOM killer. David, Paul, I
    seem to have vague recollections of a discussion about RCU vs OOM, what
    was the resolution (if anything) and would something like the below make

    mm/oom_kill.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/mm/oom_kill.c b/mm/oom_kill.c
    index 46bf2ed5..244a371 100644
    --- a/mm/oom_kill.c
    +++ b/mm/oom_kill.c
    @@ -607,6 +607,9 @@ int try_set_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_mask)
    struct zone *zone;
    int ret = 1;

    + synchronize_sched();
    + synchronize_rcu();
    for_each_zone_zonelist(zone, z, zonelist, gfp_zone(gfp_mask)) {
    if (zone_is_oom_locked(zone)) {

     \ /
      Last update: 2012-05-01 18:21    [W:0.022 / U:155.832 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site