Date: Wed, 7 Aug 2019 17:11:34 +0800 From: Liang Zhuo <brightiup.zhuo@gmail.com> To: freebsd-hackers@freebsd.org Subject: Force kernel epoch calls Message-ID: <CACqxGXWZVeFK8kUpRaPtArnvZ5GD6CR44LJBHLCeP-KPJdSPNg@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi list,
I have a problem with *epoch* while I am
trying to write an exploit of a FreeBSD
kernel bug. Specifically, many schedules
are managed by epoch system, like *if_d\*
*estroy()* which destroys a *struct ifnet*
object, and *in_pcbfree_**defered()* which
destroys a *struct inpcb* object.
My question is that these schedules will
only be called just before the process
exits by *epoch_call_task() *as follow:
fork_exit()
-> gtaskqueue_thread_loop()
-> gtaskqueue_run_locked()
-> epoch_call_task()
-> if_destroy()/in_pcbfree_defered()
But I need to control the time of freeing
of those objects as better as synchronization.
Do do I have any methods to force these calls
in epoch system to be called in userspace?
Thanks,
Brightiup
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACqxGXWZVeFK8kUpRaPtArnvZ5GD6CR44LJBHLCeP-KPJdSPNg>
