[kernel] Linux v3.8-rc7

Josh Boyer jwboyer at fedoraproject.org
Fri Feb 8 22:09:16 UTC 2013


commit a6e396049b920681bc93141d9d97246b8719fc91
Author: Josh Boyer <jwboyer at redhat.com>
Date:   Fri Feb 8 17:08:39 2013 -0500

    Linux v3.8-rc7
    
    - Add patch to fix atomic sleep issue on alloc_pid failure (rhbz 894623)
    - Disable debugging options.

 ...fi-fix-the-reclaimed-packet-tracking-upon.patch |   68 -------
 config-nodebug                                     |   18 +-
 kernel.spec                                        |   33 ++--
 ...ock_irq-when-alloc_pid-fails-because-init.patch |  195 ++++++++++++++++++++
 rtlwifi-Fix-scheduling-while-atomic-bug.patch      |   65 -------
 sources                                            |    3 +-
 6 files changed, 220 insertions(+), 162 deletions(-)
---
diff --git a/config-nodebug b/config-nodebug
index 6b8b48f..c471b85 100644
--- a/config-nodebug
+++ b/config-nodebug
@@ -2,14 +2,14 @@ CONFIG_SND_VERBOSE_PRINTK=y
 CONFIG_SND_DEBUG=y
 CONFIG_SND_PCM_XRUN_DEBUG=y
 
-CONFIG_DEBUG_ATOMIC_SLEEP=y
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
 
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_RT_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
-CONFIG_PROVE_LOCKING=y
-CONFIG_DEBUG_SPINLOCK=y
-CONFIG_PROVE_RCU=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_PROVE_RCU is not set
 # CONFIG_PROVE_RCU_REPEATEDLY is not set
 # CONFIG_DEBUG_PER_CPU_MAPS is not set
 CONFIG_CPUMASK_OFFSTACK=y
@@ -25,11 +25,11 @@ CONFIG_CPUMASK_OFFSTACK=y
 # CONFIG_FAIL_IO_TIMEOUT is not set
 # CONFIG_FAIL_MMC_REQUEST is not set
 
-CONFIG_SLUB_DEBUG_ON=y
+# CONFIG_SLUB_DEBUG_ON is not set
 
 # CONFIG_LOCK_STAT is not set
 
-CONFIG_DEBUG_STACK_USAGE=y
+# CONFIG_DEBUG_STACK_USAGE is not set
 
 # CONFIG_ACPI_DEBUG is not set
 # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
@@ -56,7 +56,7 @@ CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
 
 # CONFIG_DEBUG_NOTIFIERS is not set
 
-CONFIG_DMA_API_DEBUG=y
+# CONFIG_DMA_API_DEBUG is not set
 
 # CONFIG_MMIOTRACE is not set
 
@@ -66,7 +66,7 @@ CONFIG_DMA_API_DEBUG=y
 #  on in rawhide nodebug builds
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
 
-CONFIG_EXT4_DEBUG=y
+# CONFIG_EXT4_DEBUG is not set
 
 # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 
@@ -100,7 +100,7 @@ CONFIG_KDB_KEYBOARD=y
 # CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
 # CONFIG_TEST_LIST_SORT is not set
 
-CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_DETECT_HUNG_TASK is not set
 CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 
diff --git a/kernel.spec b/kernel.spec
index be5e548..8aeed97 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -62,7 +62,7 @@ Summary: The Linux kernel
 # For non-released -rc kernels, this will be appended after the rcX and
 # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
 #
-%global baserelease 3
+%global baserelease 1
 %global fedora_build %{baserelease}
 
 # base_sublevel is the kernel version we're starting with and patching
@@ -93,9 +93,9 @@ Summary: The Linux kernel
 # The next upstream release sublevel (base_sublevel+1)
 %define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
 # The rc snapshot level
-%define rcrev 6
+%define rcrev 7
 # The git snapshot level
-%define gitrev 3
+%define gitrev 0
 # Set rpm version accordingly
 %define rpmversion 3.%{upstream_sublevel}.0
 %endif
@@ -159,7 +159,7 @@ Summary: The Linux kernel
 # Set debugbuildsenabled to 1 for production (build separate debug kernels)
 #  and 0 for rawhide (all kernels are debug kernels).
 # See also 'make debug' and 'make release'.
-%define debugbuildsenabled 0
+%define debugbuildsenabled 1
 
 # Want to build a vanilla kernel build without any non-upstream patches?
 %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
@@ -172,7 +172,7 @@ Summary: The Linux kernel
 %define doc_build_fail true
 %endif
 
-%define rawhide_skip_docs 1
+%define rawhide_skip_docs 0
 %if 0%{?rawhide_skip_docs}
 %define with_doc 0
 %define doc_build_fail true
@@ -738,9 +738,6 @@ Patch22070: irqnr-build.patch
 #rhbz 859485
 Patch21226: vt-Drop-K_OFF-for-VC_MUTE.patch
 
-#rhbz 863424
-Patch21229: Revert-iwlwifi-fix-the-reclaimed-packet-tracking-upon.patch
-
 #rhbz 799564
 Patch21240: Input-increase-struct-ps2dev-cmdbuf-to-8-bytes.patch
 Patch21241: Input-add-support-for-Cypress-PS2-Trackpads.patch
@@ -752,12 +749,11 @@ Patch21242: criu-no-expert.patch
 Patch21243: mac80211-improve-latency-and-throughput-while-software.patch
 Patch21244: iwlegacy-add-flush-callback.patch
 
-#rhbz 903881
-Patch21246: rtlwifi-Fix-scheduling-while-atomic-bug.patch
-
 #rhbz 892811
 Patch21247: ath9k_rx_dma_stop_check.patch
 
+Patch21248: pid-unlock_irq-when-alloc_pid-fails-because-init.patch
+
 # END OF PATCH DEFINITIONS
 
 %endif
@@ -1415,7 +1411,7 @@ ApplyOptionalPatch v4l-dvb-update.patch
 ApplyOptionalPatch v4l-dvb-experimental.patch
 
 # Experiment: Double the length of the brcmsmac transmit timeout.
-ApplyPatch brcmsmac-double-timeout.patch
+#pplyPatch brcmsmac-double-timeout.patch
 
 # Patches headed upstream
 ApplyPatch fs-proc-devtree-remove_proc_entry.patch
@@ -1446,9 +1442,6 @@ ApplyPatch irqnr-build.patch
 #rhbz 859485
 ApplyPatch vt-Drop-K_OFF-for-VC_MUTE.patch
 
-#rhbz 863424
-ApplyPatch Revert-iwlwifi-fix-the-reclaimed-packet-tracking-upon.patch
-
 #rhbz 799564
 ApplyPatch Input-increase-struct-ps2dev-cmdbuf-to-8-bytes.patch
 ApplyPatch Input-add-support-for-Cypress-PS2-Trackpads.patch
@@ -1460,12 +1453,11 @@ ApplyPatch criu-no-expert.patch
 ApplyPatch mac80211-improve-latency-and-throughput-while-software.patch
 ApplyPatch iwlegacy-add-flush-callback.patch
 
-#rhbz 903881
-ApplyPatch rtlwifi-Fix-scheduling-while-atomic-bug.patch
-
 #rhbz 892811
 ApplyPatch ath9k_rx_dma_stop_check.patch
 
+ApplyPatch pid-unlock_irq-when-alloc_pid-fails-because-init.patch
+
 # END OF PATCH APPLICATIONS
 
 %endif
@@ -2321,6 +2313,11 @@ fi
 #                 ||----w |
 #                 ||     ||
 %changelog
+* Fri Feb 08 2013 Josh Boyer <jwboyer at redhat.com> - 3.8.0-0.rc7.git0.1
+- Linux v3.8-rc7
+- Add patch to fix atomic sleep issue on alloc_pid failure (rhbz 894623)
+- Disable debugging options.
+
 * Thu Feb  7 2013 Peter Robinson <pbrobinson at fedoraproject.org>
 - Minor ARM build fixes
 
diff --git a/pid-unlock_irq-when-alloc_pid-fails-because-init.patch b/pid-unlock_irq-when-alloc_pid-fails-because-init.patch
new file mode 100644
index 0000000..7906223
--- /dev/null
+++ b/pid-unlock_irq-when-alloc_pid-fails-because-init.patch
@@ -0,0 +1,195 @@
+Path: news.gmane.org!not-for-mail
+From: ebiederm at xmission.com (Eric W. Biederman)
+Newsgroups: gmane.linux.kernel
+Subject: Re: Odd ENOMEM being returned in 3.8-rcX
+Date: Fri, 08 Feb 2013 12:13:09 -0800
+Lines: 117
+Approved: news at gmane.org
+Message-ID: <87k3qiwomi.fsf at xmission.com>
+References: <20130207215742.GB31684 at hansolo.jdub.homelinux.org>
+	<20130207141502.04625ea0.akpm at linux-foundation.org>
+	<20130208003501.GC31684 at hansolo.jdub.homelinux.org>
+	<20130208181949.GD31684 at hansolo.jdub.homelinux.org>
+NNTP-Posting-Host: plane.gmane.org
+Mime-Version: 1.0
+Content-Type: text/plain
+X-Trace: ger.gmane.org 1360354410 32723 80.91.229.3 (8 Feb 2013 20:13:30 GMT)
+X-Complaints-To: usenet at ger.gmane.org
+NNTP-Posting-Date: Fri, 8 Feb 2013 20:13:30 +0000 (UTC)
+Cc: Andrew Morton <akpm at linux-foundation.org>,
+	Al Viro <viro at zeniv.linux.org.uk>,
+	Mel Gorman <mgorman at suse.de>, linux-kernel at vger.kernel.org
+To: Josh Boyer <jwboyer at redhat.com>
+Original-X-From: linux-kernel-owner at vger.kernel.org Fri Feb 08 21:13:50 2013
+Return-path: <linux-kernel-owner at vger.kernel.org>
+Envelope-to: glk-linux-kernel-3 at plane.gmane.org
+Original-Received: from vger.kernel.org ([209.132.180.67])
+	by plane.gmane.org with esmtp (Exim 4.69)
+	(envelope-from <linux-kernel-owner at vger.kernel.org>)
+	id 1U3uKS-0003Ug-Vg
+	for glk-linux-kernel-3 at plane.gmane.org; Fri, 08 Feb 2013 21:13:49 +0100
+Original-Received: (majordomo at vger.kernel.org) by vger.kernel.org via listexpand
+	id S932228Ab3BHUNT (ORCPT <rfc822;glk-linux-kernel-3 at m.gmane.org>);
+	Fri, 8 Feb 2013 15:13:19 -0500
+Original-Received: from out01.mta.xmission.com ([166.70.13.231]:45242 "EHLO
+	out01.mta.xmission.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+	with ESMTP id S932068Ab3BHUNS (ORCPT
+	<rfc822;linux-kernel at vger.kernel.org>);
+	Fri, 8 Feb 2013 15:13:18 -0500
+Original-Received: from in02.mta.xmission.com ([166.70.13.52])
+	by out01.mta.xmission.com with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+	(Exim 4.76)
+	(envelope-from <ebiederm at xmission.com>)
+	id 1U3uJw-0002FX-87; Fri, 08 Feb 2013 13:13:16 -0700
+Original-Received: from c-98-207-153-68.hsd1.ca.comcast.net ([98.207.153.68] helo=eric-ThinkPad-X220.xmission.com)
+	by in02.mta.xmission.com with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16)
+	(Exim 4.76)
+	(envelope-from <ebiederm at xmission.com>)
+	id 1U3uJt-0002Vi-8d; Fri, 08 Feb 2013 13:13:16 -0700
+In-Reply-To: <20130208181949.GD31684 at hansolo.jdub.homelinux.org> (Josh Boyer's
+	message of "Fri, 8 Feb 2013 13:19:49 -0500")
+User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux)
+X-XM-AID: U2FsdGVkX19Djtj1/IXFytBzyU3W7XCCOHTPWCA75uo=
+X-SA-Exim-Connect-IP: 98.207.153.68
+X-SA-Exim-Mail-From: ebiederm at xmission.com
+X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sa07.xmission.com
+X-Spam-Level: 
+X-Spam-Status: No, score=-0.6 required=8.0 tests=ALL_TRUSTED,
+	DCC_CHECK_NEGATIVE,FVGT_m_MULTI_ODD,T_TM2_M_HEADER_IN_MSG,T_XMDrugObfuBody_08
+	autolearn=disabled version=3.3.2
+X-Spam-Report: * -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP
+	*  0.0 T_TM2_M_HEADER_IN_MSG BODY: T_TM2_M_HEADER_IN_MSG
+	* -0.0 DCC_CHECK_NEGATIVE Not listed in DCC
+	*      [sa07 1397; Body=1 Fuz1=1 Fuz2=1]
+	*  0.4 FVGT_m_MULTI_ODD Contains multiple odd letter combinations
+	*  0.0 T_XMDrugObfuBody_08 obfuscated drug references
+X-Spam-DCC: XMission; sa07 1397; Body=1 Fuz1=1 Fuz2=1 
+X-Spam-Combo: ;Josh Boyer <jwboyer at redhat.com>
+X-Spam-Relay-Country: 
+X-Spam-Flag: No
+X-SA-Exim-Version: 4.2.1 (built Wed, 14 Nov 2012 14:26:46 -0700)
+X-SA-Exim-Scanned: Yes (on in02.mta.xmission.com)
+Original-Sender: linux-kernel-owner at vger.kernel.org
+Precedence: bulk
+List-ID: <linux-kernel.vger.kernel.org>
+X-Mailing-List: linux-kernel at vger.kernel.org
+Xref: news.gmane.org gmane.linux.kernel:1438656
+Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1438656>
+
+Josh Boyer <jwboyer at redhat.com> writes:
+
+> On Thu, Feb 07, 2013 at 07:35:01PM -0500, Josh Boyer wrote:
+>> On Thu, Feb 07, 2013 at 02:15:02PM -0800, Andrew Morton wrote:
+>> > On Thu, 7 Feb 2013 16:57:42 -0500
+>> > Josh Boyer <jwboyer at redhat.com> wrote:
+>> > 
+>> > > Hi All,
+>> > > 
+>> > > We've hit a weird error in Fedora using the 3.8-rcX kernels.  It seems
+>> > > the mock tool is getting back ENOMEM when doing very simple things that
+>> > > normally just work.  The 3.7 kernels on the same userspace work just
+>> > > fine.  It seems just running 'mock init -v' is enough to cause the
+>> > > failure.
+>> > 
+>> > I assume you're not seeing the "page allocation failure" message and
+>> > backtrace.  This means that either
+>> 
+>> Right.  If I disable our debug options, I see no backtraces at all and
+>> the python app still gets ENOMEM returned.  (See below for those
+>> interested).
+>> 
+>> > a) it's a __GFP_NOWARN callsite.  This is rare.  Or
+>> > 
+>> > b) it's actually a different error but someone went and overwrote a
+>> >    callee's return value with -ENOMEM.  We do this a lot and it sucks.
+>> 
+>> We do it in copy_io :\.
+>> 
+>> > > At first glance it seems copy_io is failing (possibly because
+>> > > get_task_io_context fails), and then the above fallout is printed.  The
+>> > > warning seems fairly valid, but I don't think that is the root of the
+>> > > problem.
+>> > 
+>> > yes, get_task_io_context() might be the place.  Tried adding a few
+>> > error-path printks in there to see what's happening?
+>> 
+>> Yeah, that's my next step.  I guess I know what I'll be doing tomorrow.
+>> 
+>> > I can't see anything around there which leaves interrupts disabled
+>> > though.  It's quite likely that there's some code with is forgetting to
+>> > reenable interrupts on a rarely-tested error path, and that ENOMEM is
+>> > tickling the bug.
+>> 
+>> Right, agreed.  As I said, I think that is mostly a secondary issue.
+>> Hopefully it will be easy to fix once we figure out why we're getting
+>> the ENOMEM error.
+>> 
+>> Python backtrace below.  Seems to be failing on forking a umount command
+>> after init'ing the chroot.  I can put the full output somewhere if
+>> people are interested.
+>
+> OK.  I've bisected this down to:
+>
+> 50804fe3737ca6a5942fdc2057a18a8141d00141 is the first bad commit
+> commit 50804fe3737ca6a5942fdc2057a18a8141d00141
+> Author: Eric W. Biederman <ebiederm at xmission.com>
+> Date:   Tue Mar 2 15:41:50 2010 -0800
+>
+>     pidns: Support unsharing the pid namespace.
+>     
+>
+> I haven't really gotten much farther than that yet, but the bisect was
+> pretty straight forward.  Eric, is there anything specific I can gather
+> or do to help figure out why that is causing mock to get such a weird
+> error?  I can provide the bisect log if you'd like.
+
+My best guess in some dark corner of mock has untested code to unshare a
+pid namespace, and that corner started doing something now that
+unsharing of the pid namespace actually works.
+
+If mock has called unshare(CLONE_NEWPID). And then forked a process and
+that process exited, and then forked anothe process that second and all
+subsequent fork calls will fail with -ENOMEM (because init has exited in
+the pid namespace).  -ENOMEM will be generated because of a failure of
+alloc_pid.
+
+Looking at that code path a little closer that just about has to be it,
+because I goofed and the error path drops the lock but not irqs.  The
+patch below should fix the nasty warning and confirm where the code is
+failing in copy_process.
+
+An strace to see which syscalls mock is making and with which flags
+would be very interesting.  I am almost certain that there is a
+unshare(CLONE_NEWPID) somewhere in there.  But in a remote corner of
+possibility it could weird clone flags, or something else.
+
+Beyond that I suspect we want to work with the mock folks so they get
+their code to use a pid namespace working the way they intended.
+
+Eric
+
+From: "Eric W. Biederman" <ebiederm at xmission.com>
+Date: Fri, 8 Feb 2013 12:05:54 -0800
+Subject: [PATCH] pid: unlock_irq when alloc_pid fails because init has
+ exited.
+
+Signed-off-by: "Eric W. Biederman" <ebiederm at xmission.com>
+---
+ kernel/pid.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/kernel/pid.c b/kernel/pid.c
+index de9af60..f2c6a68 100644
+--- a/kernel/pid.c
++++ b/kernel/pid.c
+@@ -331,7 +331,7 @@ out:
+ 	return pid;
+ 
+ out_unlock:
+-	spin_unlock(&pidmap_lock);
++	spin_unlock_irq(&pidmap_lock);
+ out_free:
+ 	while (++i <= ns->level)
+ 		free_pidmap(pid->numbers + i);
+-- 
+1.7.5.4
diff --git a/sources b/sources
index 3276a81..7c6ddd2 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,2 @@
 21223369d682bcf44bcdfe1521095983  linux-3.7.tar.xz
-86fddbbbda8b9d7432ef479d055968e4  patch-3.8-rc6.xz
-cf0916371135cca3495194b59f877b85  patch-3.8-rc6-git3.xz
+8aeeb8d7743d0edfefc87c58118433b0  patch-3.8-rc7.xz


More information about the scm-commits mailing list