From: ebiederm@xmission.com (Eric W. Biederman)
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michal Hocko <mhocko@suse.cz>, Ingo Molnar <mingo@elte.hu>,
linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
David Miller <davem@davemloft.net>,
Eric Dumazet <eric.dumazet@gmail.com>
Subject: Re: BUG: Bad page map in process udevd (anon_vma: (null)) in 2.6.38-rc4
Date: Sat, 19 Feb 2011 18:01:36 -0800 [thread overview]
Message-ID: <m1oc67zcov.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <AANLkTincrnq1kMcAYEWYLf5vdbQ4DYbYObbg=0cLfHnm@mail.gmail.com> (Linus Torvalds's message of "Sat, 19 Feb 2011 07:33:45 -0800")
Linus Torvalds <torvalds@linux-foundation.org> writes:
> On Fri, Feb 18, 2011 at 10:22 PM, Eric W. Biederman
> <ebiederm@xmission.com> wrote:
>>
>> It looks like the same problematic dellink pattern made it into net_namespace.c,
>> and your new LIST_DEBUG changes caught it.
>
> Hey, goodie. Committing that patch felt like locking the barn door
> after the horse had bolted, so I'm happy to hear it was actually worth
> it.
>
>> I will cook up a patch after I get some sleep.
After some sleep and some more looking I think I understand what is
going on and what is happening.
The first is that I was wrong about net_namespace.c being the culprit.
The list debug failures are new with Linus's patch and there is not a
single list_move net_namespace.c.
So this brings me back to unregister_netdevice_queue and the unreg_list.
In the beginning with batching unreg_list was a list that was used only
once in the lifetime of a network device (I think). Now we have calls
using the unreg_list that can happen multiple times in the life of a
network device like dev_deactivate and dev_close that are also using the
unreg_list. In addition in unregister_netdevice_queue we also do a
list_move because for devices like veth pairs it is possible that
unregister_netdevice_queue will be called multiple times.
So I think the change below to fix dev_deactivate which Eric D. missed
will fix this problem. Now to go test that.
In other news my userspace is still very unhappy. So it looks like I am
going to be tracking 2.6.38-rcN bugs for a while.
Eric
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 8acba45..7a10a8d 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1229,6 +1229,7 @@ void ieee80211_remove_interfaces(struct ieee80211_local *local)
}
mutex_unlock(&local->iflist_mtx);
unregister_netdevice_many(&unreg_list);
+ list_del(&unreg_list);
}
static u32 ieee80211_idle_off(struct ieee80211_local *local,
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 34dc598..1bc6980 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -839,6 +839,7 @@ void dev_deactivate(struct net_device *dev)
list_add(&dev->unreg_list, &single);
dev_deactivate_many(&single);
+ list_del(&single);
}
static void dev_init_scheduler_queue(struct net_device *dev,
WARNING: multiple messages have this Message-ID (diff)
From: ebiederm@xmission.com (Eric W. Biederman)
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michal Hocko <mhocko@suse.cz>, Ingo Molnar <mingo@elte.hu>,
linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
David Miller <davem@davemloft.net>,
Eric Dumazet <eric.dumazet@gmail.com>
Subject: Re: BUG: Bad page map in process udevd (anon_vma: (null)) in 2.6.38-rc4
Date: Sat, 19 Feb 2011 18:01:36 -0800 [thread overview]
Message-ID: <m1oc67zcov.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <AANLkTincrnq1kMcAYEWYLf5vdbQ4DYbYObbg=0cLfHnm@mail.gmail.com> (Linus Torvalds's message of "Sat, 19 Feb 2011 07:33:45 -0800")
Linus Torvalds <torvalds@linux-foundation.org> writes:
> On Fri, Feb 18, 2011 at 10:22 PM, Eric W. Biederman
> <ebiederm@xmission.com> wrote:
>>
>> It looks like the same problematic dellink pattern made it into net_namespace.c,
>> and your new LIST_DEBUG changes caught it.
>
> Hey, goodie. Committing that patch felt like locking the barn door
> after the horse had bolted, so I'm happy to hear it was actually worth
> it.
>
>> I will cook up a patch after I get some sleep.
After some sleep and some more looking I think I understand what is
going on and what is happening.
The first is that I was wrong about net_namespace.c being the culprit.
The list debug failures are new with Linus's patch and there is not a
single list_move net_namespace.c.
So this brings me back to unregister_netdevice_queue and the unreg_list.
In the beginning with batching unreg_list was a list that was used only
once in the lifetime of a network device (I think). Now we have calls
using the unreg_list that can happen multiple times in the life of a
network device like dev_deactivate and dev_close that are also using the
unreg_list. In addition in unregister_netdevice_queue we also do a
list_move because for devices like veth pairs it is possible that
unregister_netdevice_queue will be called multiple times.
So I think the change below to fix dev_deactivate which Eric D. missed
will fix this problem. Now to go test that.
In other news my userspace is still very unhappy. So it looks like I am
going to be tracking 2.6.38-rcN bugs for a while.
Eric
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 8acba45..7a10a8d 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1229,6 +1229,7 @@ void ieee80211_remove_interfaces(struct ieee80211_local *local)
}
mutex_unlock(&local->iflist_mtx);
unregister_netdevice_many(&unreg_list);
+ list_del(&unreg_list);
}
static u32 ieee80211_idle_off(struct ieee80211_local *local,
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 34dc598..1bc6980 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -839,6 +839,7 @@ void dev_deactivate(struct net_device *dev)
list_add(&dev->unreg_list, &single);
dev_deactivate_many(&single);
+ list_del(&single);
}
static void dev_init_scheduler_queue(struct net_device *dev,
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-02-20 2:01 UTC|newest]
Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-16 18:52 BUG: Bad page map in process udevd (anon_vma: (null)) in 2.6.38-rc4 Michal Hocko
2011-02-16 19:37 ` Ingo Molnar
2011-02-16 19:37 ` Ingo Molnar
2011-02-16 19:50 ` Linus Torvalds
2011-02-16 19:50 ` Linus Torvalds
2011-02-16 20:09 ` Linus Torvalds
2011-02-16 20:09 ` Linus Torvalds
2011-02-16 20:51 ` Linus Torvalds
2011-02-16 20:51 ` Linus Torvalds
2011-02-17 9:09 ` Michal Hocko
2011-02-17 9:09 ` Michal Hocko
2011-02-17 16:13 ` Linus Torvalds
2011-02-17 16:13 ` Linus Torvalds
2011-02-17 16:26 ` Michal Hocko
2011-02-17 16:26 ` Michal Hocko
2011-02-17 16:35 ` Ingo Molnar
2011-02-17 16:35 ` Ingo Molnar
2011-02-17 18:57 ` Eric W. Biederman
2011-02-17 18:57 ` Eric W. Biederman
2011-02-17 19:11 ` Linus Torvalds
2011-02-17 19:11 ` Linus Torvalds
2011-02-17 19:31 ` Eric W. Biederman
2011-02-17 19:31 ` Eric W. Biederman
2011-02-18 3:16 ` Eric W. Biederman
2011-02-18 3:16 ` Eric W. Biederman
2011-02-18 4:30 ` Linus Torvalds
2011-02-18 4:30 ` Linus Torvalds
2011-02-18 4:36 ` David Miller
2011-02-18 4:36 ` David Miller
2011-02-18 6:25 ` Eric Dumazet
2011-02-18 6:25 ` Eric Dumazet
2011-02-18 7:29 ` Eric Dumazet
2011-02-18 7:29 ` Eric Dumazet
2011-02-18 8:54 ` [PATCH 1/2] net: dont leave active on stack LIST_HEAD Eric Dumazet
2011-02-18 8:54 ` Eric Dumazet
2011-02-18 20:14 ` David Miller
2011-02-18 20:14 ` David Miller
2011-02-18 4:38 ` BUG: Bad page map in process udevd (anon_vma: (null)) in 2.6.38-rc4 Linus Torvalds
2011-02-18 4:38 ` Linus Torvalds
2011-02-18 4:40 ` David Miller
2011-02-18 4:40 ` David Miller
2011-02-18 4:57 ` Linus Torvalds
2011-02-18 4:57 ` Linus Torvalds
2011-02-18 8:29 ` Eric W. Biederman
2011-02-18 8:29 ` Eric W. Biederman
2011-02-18 5:20 ` Eric W. Biederman
2011-02-18 5:20 ` Eric W. Biederman
2011-02-18 8:41 ` Eric Dumazet
2011-02-18 8:41 ` Eric Dumazet
2011-02-18 8:59 ` [PATCH 2/2] net: deinit automatic LIST_HEAD Eric Dumazet
2011-02-18 8:59 ` Eric Dumazet
2011-02-18 20:14 ` David Miller
2011-02-18 20:14 ` David Miller
2011-02-18 12:29 ` BUG: Bad page map in process udevd (anon_vma: (null)) in 2.6.38-rc4 Michal Hocko
2011-02-18 12:29 ` Michal Hocko
2011-02-18 16:26 ` Michal Hocko
2011-02-18 16:26 ` Michal Hocko
2011-02-18 16:39 ` Linus Torvalds
2011-02-18 16:39 ` Linus Torvalds
2011-02-18 18:08 ` Eric W. Biederman
2011-02-18 18:08 ` Eric W. Biederman
2011-02-18 18:08 ` Eric W. Biederman
2011-02-18 18:48 ` Linus Torvalds
2011-02-18 18:48 ` Linus Torvalds
2011-02-18 19:01 ` Arnaldo Carvalho de Melo
2011-02-18 19:01 ` Arnaldo Carvalho de Melo
2011-02-18 19:01 ` Arnaldo Carvalho de Melo
2011-02-18 19:11 ` Arnaldo Carvalho de Melo
2011-02-18 19:11 ` Arnaldo Carvalho de Melo
2011-02-18 20:38 ` Eric W. Biederman
2011-02-18 20:38 ` Eric W. Biederman
2011-02-19 8:35 ` [PATCH] tcp: fix inet_twsk_deschedule() Eric Dumazet
2011-02-19 8:35 ` Eric Dumazet
2011-02-19 8:35 ` Eric Dumazet
2011-02-20 2:59 ` David Miller
2011-02-20 2:59 ` David Miller
2011-02-18 19:13 ` BUG: Bad page map in process udevd (anon_vma: (null)) in 2.6.38-rc4 Eric Dumazet
2011-02-18 19:13 ` Eric Dumazet
2011-02-18 19:56 ` David Miller
2011-02-18 19:56 ` David Miller
2011-02-19 6:22 ` Eric W. Biederman
2011-02-19 6:22 ` Eric W. Biederman
2011-02-19 15:33 ` Linus Torvalds
2011-02-19 15:33 ` Linus Torvalds
2011-02-20 2:01 ` Eric W. Biederman [this message]
2011-02-20 2:01 ` Eric W. Biederman
2011-02-20 6:15 ` Linus Torvalds
2011-02-20 6:15 ` Linus Torvalds
2011-02-20 8:27 ` Eric Dumazet
2011-02-20 8:27 ` Eric Dumazet
2011-02-20 19:53 ` David Miller
2011-02-20 19:53 ` David Miller
2011-02-20 21:34 ` Eric W. Biederman
2011-02-20 21:34 ` Eric W. Biederman
2011-02-18 8:54 ` Michal Hocko
2011-02-18 8:54 ` Michal Hocko
2011-02-20 12:43 ` Ingo Molnar
2011-02-20 12:43 ` Ingo Molnar
2011-02-17 16:36 ` Eric Dumazet
2011-02-17 16:36 ` Eric Dumazet
2011-02-17 17:07 ` Linus Torvalds
2011-02-17 19:36 ` Eric Dumazet
2011-02-17 19:36 ` Eric Dumazet
2011-02-17 20:18 ` Linus Torvalds
2011-02-16 20:13 ` Ingo Molnar
2011-02-16 20:13 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1oc67zcov.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.cz \
--cc=mingo@elte.hu \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.