Your message dated Wed, 4 Feb 2026 11:09:59 +0100
with message-id <[email protected]>
and subject line Re: Bug#1126280: Unexpected pthread preemption
has caused the Debian Bug report #1126280,
regarding Unexpected pthread preemption
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1126280: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1126280
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
To: [email protected]
From: [email protected]
Subject: Unexpected pthread preemption
Package: linux-source-6.12
Version: 6.12.48-amd64 
OS: Debian/Trixie

Overview:
We are seeing with Debian Trixie kernel that pthreads are being preempted 
unexpectedly.   In our work model for our application, we isolate a number of 
cores from the OS such that our application is the only thing running on these 
isolated cores.   All of the pthreads are set up as SCHED_FIFO and running at 
the same priority such that it should be up to the pthread when it wants to 
allow preemption.   We also run mlockall(MCL_CURRENT|MCL_FUTURE) to lock all of 
the memory in this application.  Additionally, as SO modules are loaded we make 
sure all pages from these modules are pre-faulted in.   The application is 
running with ulimit lock limit == infinity.

Previously in Debian/buster, we had to add vm.compact_unevictable_allowed = 0 
since the default setting was causing unexpected eviction which led to similar 
behaviors.   We have confirmed that this setting is still set to zero.

In debugging this, we found that a pthread was transitioned out due to 
prev_state=D.   In looking at what was happening at that point it was 
determined that it was a page fault due to the instruction it was trying to 
run.  In this case the faulting instruction would have ran numerous times by 
this point so there was not reason for it to have to fault in this page.

We have retested using bookworm kernel and are not seeing this issue.

I performed an attempt at isolating this issue.  I disabled 
CONFIG_TRANSPARENT_HUGEPAGE but still hit the issue.   I then disabled 
CONFIG_COMPACTION and now have ran for nearly 72hrs without a failure 
(previously we would see failures in under 15hrs).  Unfortunately shutting off 
COMPACTION is not something we want to do but it at least appears to prove that 
something in that realm changed which is causing this issue.

Since the 6.1 kernel works for us and 6.12 is what fails, it will take some 
time to examine the changes in between to determine if a particular commit is 
causing this issue.

David Hoyer

--- End Message ---
--- Begin Message ---
Source: linux
Source-Version: 6.12.63-1

On Tue, Feb 03, 2026 at 03:45:10PM +0000, Hoyer, David wrote:
> On Sat, 31 Jan 2026 14:40:06 +0000 "Hoyer, David" <[email protected]> 
> wrote:
> > On Fri, 23 Jan 2026 15:27:05 +0000 "Hoyer, David" <[email protected]> 
> > wrote:
> > > To: [email protected]
> > > From: [email protected]
> > > Subject: Unexpected pthread preemption
> > > Package: linux-source-6.12
> > > Version: 6.12.48-amd64
> > > OS: Debian/Trixie
> > >
> > > Overview:
> > > We are seeing with Debian Trixie kernel that pthreads are being preempted 
> > > unexpectedly.   In our work model for our application, we isolate a 
> > > number of cores from the OS such that our application is the only thing 
> > > running on these isolated cores.   All of the pthreads are set up as 
> > > SCHED_FIFO and running at the same priority such that it should be up to 
> > > the pthread when it wants to allow preemption.   We also run 
> > > mlockall(MCL_CURRENT|MCL_FUTURE) to lock all of the memory in this 
> > > application.  Additionally, as SO modules are loaded we make sure all 
> > > pages from these modules are pre-faulted in.   The application is running 
> > > with ulimit lock limit == infinity.
> 
> > >
> > > Previously in Debian/buster, we had to add vm.compact_unevictable_allowed 
> > > = 0 since the default setting was causing unexpected eviction which led 
> > > to similar behaviors.   We have confirmed that this setting is still set 
> > > to zero.
> 
> > >
> > > In debugging this, we found that a pthread was transitioned out due to 
> > > prev_state=D.   In looking at what was happening at that point it was 
> > > determined that it was a page fault due to the instruction it was trying 
> > > to run.  In this case the faulting instruction would have ran numerous 
> > > times by this point so there was not reason for it to have to fault in 
> > > this page.
> 
> > >
> > > We have retested using bookworm kernel and are not seeing this issue.
> > >
> > > I performed an attempt at isolating this issue.  I disabled 
> > > CONFIG_TRANSPARENT_HUGEPAGE but still hit the issue.   I then disabled 
> > > CONFIG_COMPACTION and now have ran for nearly 72hrs without a failure 
> > > (previously we would see failures in under 15hrs).  Unfortunately 
> > > shutting off COMPACTION is not something we want to do but it at least 
> > > appears to prove that something in that realm changed which is causing 
> > > this issue.
> 
> > >
> > > Since the 6.1 kernel works for us and 6.12 is what fails, it will take 
> > > some time to examine the changes in between to determine if a particular 
> > > commit is causing this issue.
> 
> > >
> > > David Hoyer
> > >
> > >
> > >
> > We started testing with 6.12.63-1 this week and it is showing promise that 
> > something between 6.12.48-1 and 6.12.63-1 fixed this issue.  It would be 
> > good to know which commit fixed it though.
> 
> >
> >
> 
> Moving to 6.12.63-1 did fix this issue.  This bug report can be closed.

Thanks for the confirmation.

Regards,
Salvatore

--- End Message ---

Reply via email to