On Friday 28 October 2005 07:39 pm, Vaibhave Agarwal wrote: > Hi, I need some help with the new local APIC functionality added in > FreeBSD 6.0 and above. > > All the code which I am writing is in FreeBSD kernel. > > I was using LAPIC one shot timer for scheduling some events in the kernel. > The problem is that I cannot call the function in my code, directly from > the APIC timer handler, because all the interrupts are disabled in the > APIC timer handler ( function is lapic_handle_timer() ), and my function > uses a sleep mutex to protect the kernel code I have written. > Therefore, I schedule a software interrupt thread, which calls my function > later in time. > Is there a way, I can call my function instantly from the > lapic_handle_timer, bcoz using the software interrupt thread, decreases > the accuracy of the scheduler i am using. You can use spin mutexes rather than sleep mutexes in the lapic_handle_timer() context. If you need msleep/wakeup() functionality you can provide that using the sleepq(9) interface directly. -- John Baldwin <jhb_at_FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.orgReceived on Mon Oct 31 2005 - 19:40:36 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:46 UTC