On 5/21/21 1:51 PM, Konstantin Belousov wrote:
On Fri, May 21, 2021 at 11:21:17AM +0000, Hans Petter Selasky wrote:
The branch main has been updated by hselasky:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=b764a426534f2f5f86d6625288c74dafdbc94d2b

commit b764a426534f2f5f86d6625288c74dafdbc94d2b
Author:     Hans Petter Selasky <hsela...@freebsd.org>
AuthorDate: 2021-05-21 11:17:42 +0000
Commit:     Hans Petter Selasky <hsela...@freebsd.org>
CommitDate: 2021-05-21 11:18:41 +0000

     There is a window where threads are removed from the process list and where
     the thread destructor is invoked. Catch that window by waiting for all
     task_struct allocations to be returned before freeing the UMA zone in the
     LinuxKPI. Else UMA may fail to release the zone due to concurrent access
     and panic:
panic() - Bad link element prev->next != elm
     zone_release()
     bucket_drain()
     bucket_free()
     zone_dtor()
     zone_free_item()
     uma_zdestroy()
     linux_current_uninit()
This failure can be triggered by loading and unloading the LinuxKPI module
     in a loop:
while true
     do
     kldload linuxkpi
     kldunload linuxkpi
     done
Discussed with: kib@
No, it was not discussed, with me.
It contains parts of my half-done patches.
And I disagree with what the global counting you added there, both on
principle and on implementation.

Let's discuss this off-list. There are not that many choices from what I can see.

--HPS
_______________________________________________
dev-commits-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "dev-commits-src-all-unsubscr...@freebsd.org"

Reply via email to