Re: Deferring work in the page fault handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/22/08, Mulyadi Santosa <mulyadi.santosa@xxxxxxxxx> wrote:
> Hi man....
>
>  First, kudos for your work on  kmemcheck....i haven't tried it by
>  myself but I think it's a cool piece of codes.
>
>
>  On Wed, May 21, 2008 at 5:04 PM, Vegard Nossum <vegard.nossum@xxxxxxxxx> wrote:
>  >
>  > I was reading Matthew Wilcox's paper on softirqs, tasklets, bottom
>  > halves, task queues, work queues, and timers. But I am still a little
>  > unsure of the best way to proceed. My requirement of not accessing
>  > dynamically allocated memory seem unprecedented in the kernel. E.g.,
>  > one of my earliest attempts included using a kernel thread and waking
>  > it up from the page fault handler, but this did not work because
>  > adding the kthread to a runqueue would access dynamically allocated
>  > memory.
>  >
>  > Does it seem like softirqs or tasklets can do what I want?
>  >
>  > Help is much appreciated.
>
>
> then you need somekind of statically allocated pages locked on RAM?
>  possibly they are allocated on boot? pfff i forgot the name, kinda
>  boot_allocate_pages() or something like that...

Yeah, no global or local variables are tracked so they are safe to
access from anywhere. But any memory allocated using kmalloc() or
kmem_cache_alloc() is dangerous to touch from the page fault handler.

>  now, for the acceleration....i think it should be tasklet in high
>  priority. If possible, try to bind this taskled to run only on certain
>  processor (not sure if it's doable).

Yep, I think that tasklets are the way to go too! In fact, I managed
to use tasklets by modifying the tasklet code only a little bit:

http://lkml.org/lkml/2008/5/21/447
http://lkml.org/lkml/2008/5/21/465

Anyway, thanks for the hints :-)

Vegard

-- 
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
	-- E. W. Dijkstra, EWD1036

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux