-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 22 Feb 2007, at 20:54, Andrew Doran wrote:This is how solaris handles the interrupts as threads, just switching =20= the stack and setting curlwp to get the interrupt thread running, essentially delaying parts of the context =20 switch to the rare case when the interrupt thread has to sleep. A difference, worse to be mentioned, is that in solaris there is one =20 interrupt thread for each ipl for each cpu, while in freebsd there is on for each "interrupt" (like irq1 irq3 on i386 which is not =20 necessarily the same as ipl). The overhead of going thru mi_switch() for interrupt handling is =20 probably quite high, therefor it will be a lot better to use this "lazy context switching" interrupt approach. Where in the =20 normal case where the interrupt does not have to block, the overhead is quite small (judged by the 29 instructions mentioned =20 and the size of the isr). In the case where the interrupt thread does not block, this is very =20 similar to conventional interrupt handling. I don't agree with "In both of those cases, we return back to the =20 interrupted LWP just as we do now" as think this is only true for the non-blocking case in the blocking =20 case it will be that after the interrupt thread has completed its work a new runnable thread will be choosen from the runqueues or do you =20 have a subtle difference in mind? - -- Viele Gr=FC=DFe, Lars Heidieker lars@heidieker.de http://paradoxon.info - ------------------------------------ Mystische Erkl=E4rungen. Die mystischen Erkl=E4rungen gelten f=FCr tief; die Wahrheit ist, dass sie noch nicht einmal oberfl=E4chlich sind. -- Friedrich Nietzsche -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFF3isecxuYqjT7GRYRAggmAKDG64/y1f2IxaEG4N8dCsi7o49CzQCfbwqu FHvd16w+1DIK2PxOxc7KtbA=3D =3DSHnn -----END PGP SIGNATURE-----
| David Newall | Re: Slow DOWN, please!!! |
| Renato S. Yamane | Error -71 on device descriptor read/all |
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
git: | |
| Shawn O. Pearce | libgit2 - a true git library |
| Martin Langhoff | Re: pack operation is thrashing my server |
| Aubrey Li | git proxy issue |
| Pierre Habouzit | git send-email improvements |
| Elad Efrat | Integrating securelevel and kauth(9) |
| Hubert Feyrer | Compressed vnd handling tested successfully |
| Matt Thomas | Interrupt, interrupt threads, continuations, and kernel lwps |
| Michael | Re: yamt-km branch |
| Richard Stallman | Real men don't attack straw men |
| Will Maier | cron doesn't run commands in /etc/crontab? |
| askthelist | Packets Per Second Limit? |
| Harald Dunkel | Packet Filter: how to keep device names on hardware failure? |
| Question on swap as ramdisk partition | 2 hours ago | Linux kernel |
| Netfilter kernel module | 12 hours ago | Linux kernel |
| serial driver xmit problem | 15 hours ago | Linux kernel |
| Why Windows is better than Linux | 15 hours ago | Linux general |
| How can I see my kernel messages in vt12? | 22 hours ago | Linux kernel |
| Grub | 1 day ago | Linux general |
| vmalloc_fault handling in x86_64 | 1 day ago | Linux kernel |
| epoll_wait()ing on epoll FD | 1 day ago | Linux kernel |
| Framebuffer in x86_64 causes problems to multiseat | 2 days ago | Linux kernel |
| Difference between 2.4 and 2.6 regarding thread creation | 2 days ago | Linux general |
