-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Regression: 3.12.y kernels are prone to filesystem dirty page count accounting failures #617
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
The first bad commit is 36bc08c. The bug still exists in rpi-3.15.y branch. |
So, what is your recommendation? Revert that commit? Fix it? |
Investigating. There have been some changes to the code surrounding the patch between 3.12 and 3.15 - one fixing a race condition, which is suspicious. |
popcornmix
added a commit
that referenced
this issue
Jun 18, 2014
popcornmix
pushed a commit
to raspberrypi/firmware
that referenced
this issue
Jun 18, 2014
…tive See: raspberrypi/linux#617 kernel: vchiq: Include SIGSTOP and SIGCONT in list of signals not-masked by vchiq to allow gdb to work See: http://www.raspberrypi.org/forums/viewtopic.php?f=67&t=76377 firmware: gencmd: Add queries for malloc and reloc free memory See: http://forum.stmlabs.com/showthread.php?tid=13737&pid=104854#pid104854 firmware: display: Add support for 32bpp palettes See: #276 firmware: Alterations to support camera DRC. (Dynamic range compression) See: http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=79622 userland: egl: Call khrn_init_options so env vars like V3D_DOUBLE_BUFFER are respected userland: hello_fft: Add qasm source files
popcornmix
pushed a commit
to Hexxeh/rpi-firmware
that referenced
this issue
Jun 18, 2014
…tive See: raspberrypi/linux#617 kernel: vchiq: Include SIGSTOP and SIGCONT in list of signals not-masked by vchiq to allow gdb to work See: http://www.raspberrypi.org/forums/viewtopic.php?f=67&t=76377 firmware: gencmd: Add queries for malloc and reloc free memory See: http://forum.stmlabs.com/showthread.php?tid=13737&pid=104854#pid104854 firmware: display: Add support for 32bpp palettes See: raspberrypi/firmware#276 firmware: Alterations to support camera DRC. (Dynamic range compression) See: http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=79622 userland: egl: Call khrn_init_options so env vars like V3D_DOUBLE_BUFFER are respected userland: hello_fft: Add qasm source files
popcornmix
added a commit
that referenced
this issue
Jun 20, 2014
popcornmix
added a commit
that referenced
this issue
Jun 27, 2014
popcornmix
added a commit
that referenced
this issue
Jul 1, 2014
popcornmix
added a commit
that referenced
this issue
Jul 8, 2014
popcornmix
added a commit
that referenced
this issue
Jul 9, 2014
popcornmix
added a commit
that referenced
this issue
Jul 18, 2014
popcornmix
added a commit
that referenced
this issue
Jul 29, 2014
popcornmix
added a commit
that referenced
this issue
Aug 1, 2014
popcornmix
added a commit
that referenced
this issue
Aug 4, 2014
popcornmix
added a commit
that referenced
this issue
Aug 15, 2014
popcornmix
added a commit
that referenced
this issue
Sep 7, 2014
popcornmix
added a commit
that referenced
this issue
Sep 19, 2014
popcornmix
added a commit
that referenced
this issue
Oct 8, 2014
popcornmix
added a commit
that referenced
this issue
Oct 8, 2014
popcornmix
added a commit
that referenced
this issue
Oct 9, 2014
popcornmix
added a commit
that referenced
this issue
Oct 9, 2014
popcornmix
added a commit
that referenced
this issue
Oct 12, 2014
popcornmix
added a commit
that referenced
this issue
Oct 12, 2014
popcornmix
added a commit
that referenced
this issue
Oct 15, 2014
popcornmix
added a commit
that referenced
this issue
Oct 20, 2014
popcornmix
added a commit
that referenced
this issue
Oct 25, 2014
popcornmix
added a commit
that referenced
this issue
Oct 31, 2014
popcornmix
added a commit
that referenced
this issue
Nov 15, 2014
popcornmix
added a commit
that referenced
this issue
Nov 22, 2014
popcornmix
added a commit
that referenced
this issue
Sep 15, 2016
popcornmix
added a commit
that referenced
this issue
Sep 24, 2016
bluegray
pushed a commit
to bluegray/ubuntu-xenial
that referenced
this issue
Sep 25, 2016
popcornmix
added a commit
that referenced
this issue
Sep 30, 2016
popcornmix
added a commit
that referenced
this issue
Oct 9, 2016
popcornmix
added a commit
that referenced
this issue
Oct 17, 2016
popcornmix
added a commit
that referenced
this issue
Oct 22, 2016
ColinIanKing
pushed a commit
to ColinIanKing/ubuntu-xenial
that referenced
this issue
Oct 28, 2016
angyalp
pushed a commit
to angyalp/kernel_rpi
that referenced
this issue
Dec 19, 2016
tabp0le
pushed a commit
to tabp0le/ubuntu_xenial_kernel
that referenced
this issue
Dec 22, 2016
perfecto-devops
pushed a commit
to perfecto-devops/ubuntu-xenial
that referenced
this issue
Feb 2, 2017
Noltari
pushed a commit
to Noltari/linux
that referenced
this issue
Feb 6, 2017
neuschaefer
pushed a commit
to neuschaefer/raspi-binary-firmware
that referenced
this issue
Feb 27, 2017
…tive See: raspberrypi/linux#617 kernel: vchiq: Include SIGSTOP and SIGCONT in list of signals not-masked by vchiq to allow gdb to work See: http://www.raspberrypi.org/forums/viewtopic.php?f=67&t=76377 firmware: gencmd: Add queries for malloc and reloc free memory See: http://forum.stmlabs.com/showthread.php?tid=13737&pid=104854#pid104854 firmware: display: Add support for 32bpp palettes See: raspberrypi#276 firmware: Alterations to support camera DRC. (Dynamic range compression) See: http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=79622 userland: egl: Call khrn_init_options so env vars like V3D_DOUBLE_BUFFER are respected userland: hello_fft: Add qasm source files
raspbian-autopush
pushed a commit
to raspbian-packages/linux
that referenced
this issue
Mar 7, 2017
commit 52a6bd88d5e34f3227da24ed1eb882f296e9ee32 Author: popcornmix <[email protected]> Date: Wed Jun 18 13:42:01 2014 +0100 vmstat: Workaround for issue where dirty page count goes negative See: raspberrypi/linux#617 http://www.spinics.net/lists/linux-mm/msg72236.html Gbp-Pq: Topic rpi Gbp-Pq: Name rpi_1049_52a6bd88d5e34f3227da24ed1eb882f296e9ee32.patch
raspbian-autopush
pushed a commit
to raspbian-packages/linux
that referenced
this issue
Mar 7, 2017
commit 52a6bd88d5e34f3227da24ed1eb882f296e9ee32 Author: popcornmix <[email protected]> Date: Wed Jun 18 13:42:01 2014 +0100 vmstat: Workaround for issue where dirty page count goes negative See: raspberrypi/linux#617 http://www.spinics.net/lists/linux-mm/msg72236.html Gbp-Pq: Topic rpi Gbp-Pq: Name rpi_1049_52a6bd88d5e34f3227da24ed1eb882f296e9ee32.patch
JackieLiu1
pushed a commit
to JackieLiu1/kernel
that referenced
this issue
Mar 23, 2017
woshihuangzhijie
pushed a commit
to woshihuangzhijie/linuxcode
that referenced
this issue
Sep 20, 2017
amichelotti
pushed a commit
to amichelotti/ubuntu-vme-xenial
that referenced
this issue
Oct 19, 2017
lianhaidong
pushed a commit
to lianhaidong/ubuntu-xenial
that referenced
this issue
Nov 6, 2017
liuqun
pushed a commit
to liuqun/linux-raspi2
that referenced
this issue
Dec 14, 2017
liuqun
pushed a commit
to liuqun/linux-raspi2
that referenced
this issue
Dec 20, 2017
liuqun
pushed a commit
to liuqun/linux-raspi2
that referenced
this issue
Dec 20, 2017
liuqun
pushed a commit
to liuqun/linux-raspi2
that referenced
this issue
Dec 20, 2017
polceanum
pushed a commit
to polceanum/ubuntu-xenial
that referenced
this issue
Feb 6, 2018
APokorny
pushed a commit
to ubports/ubuntu_kernel_xenial
that referenced
this issue
Oct 11, 2018
hisenyiu2015
pushed a commit
to hisenyiu2015/msm-4.14
that referenced
this issue
May 20, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Following on from an email conversation where the issue was first found:
On 3.12.y kernels, it is possible to break the filesystem dirty page accounting (making it wrap around to 2^32-1 kB of dirty pages) which has the following effects:
The reason that this occurs is that an interrupt- or preempt-unsafe double decrement on the global number of dirty filesystem pages causes the counter to wrap to an extremely large value, above the value where the kernel will start to flush dirtied filesystem pages out to disk. In effect, every file write operation will immediately trigger a write of the affected page to the physical media on which the filesystem is based: SD card or USB device. For certain workloads this has much of the same symptoms as "swap hell".
A bisect on the git tree between 3.11 and 3.12.21 produced two commits (yet to be bisected):
Either of these could be culprit for allowing the page counter to wrap. Testing required on each in turn.
The canonical test is to stop and restart the mysqld service. If nr_dirty in /proc/meminfo turns into ~4 billion kB instead of a few hundred, then the bug exists.
The text was updated successfully, but these errors were encountered: