From: Jeff D. <jd...@ka...> - 2002-01-12 02:50:57
|
I merged Lennert's latest SMP changes. I think I've got them all in now. Added James McMechan's partial read change. Fixed the hang caused by xterm failing to open the display. Exported sys_open because UML actually calls the entry point rather than executing a trap instruction. This allows soundcore.o to be modularized. Fixed the swap corruption bug noticed by Lorenzo Allegrucci and Rodrigo de Castro. Fixed various small bugs. Added __clear_user which XFS needs. As always, it's available at http://user-mode-linux.sourceforge.net/dl-sf.html Jeff |
From: Lorenzo A. <l.a...@ti...> - 2002-01-12 13:28:21
|
On Saturday 12 January 2002 03:52, Jeff Dike wrote: > Fixed the swap corruption bug noticed by Lorenzo Allegrucci and > Rodrigo de Castro. I confirm |
From: Lennert B. <bu...@gn...> - 2002-01-12 18:02:19
|
On Fri, Jan 11, 2002 at 09:52:24PM -0500, Jeff Dike wrote: > I merged Lennert's latest SMP changes. I think I've got them all in now. I think you missed this one: --- linux-2.4.17-5um/arch/um/kernel/exec_kern.c Sat Jan 12 18:53:02 2002 +++ linux-2.4.17-4um-build/arch/um/kernel/exec_kern.c Sun Jan 6 12:20:49 2002@@ -53,7 +53,8 @@ do_exit(SIGKILL); } - forward_interrupts(new_pid); + if (current->processor == 0) + forward_interrupts(new_pid); current->thread.request.op = OP_EXEC; current->thread.request.u.exec.pid = new_pid; unprotect_stack((unsigned long) current); In arch/um/kernel/irq_user.c, calling IPI_handler is now conditional on CONFIG_SMP, but this symbol isn't defined in _user files (causing IPIs to be never handled). Not sure how to fix this in the best way. In the same function, you don't have 'if (hard_smp_processor_id() != 0) return;'. Hmm. Perhaps I never sent this bit. cheers, Lennert |
From: Jeff D. <jd...@ka...> - 2002-01-13 01:52:14
|
bu...@gn... said: > I think you missed this one: > - forward_interrupts(new_pid); > + if (current->processor == 0) > + forward_interrupts(new_pid); Oops, yup. > In arch/um/kernel/irq_user.c, calling IPI_handler is now conditional > on CONFIG_SMP, Because all of smp.c is conditional on CONFIG_SMP including the definition of IPI_handler. > but this symbol isn't defined in _user files (causing > IPIs to be never handled). Not sure how to fix this in the best way. If CONFIG_SMP isn't on, why worry about IPIs at all? > In the same function, you don't have > 'if (hard_smp_processor_id() != 0) return;'. > Hmm. Perhaps I never sent this bit. No, you didn't. We just talked about it. Anyway, I stuck 'if (current->processor != 0) return;' and that failed to compile because it's in a _user file. So I backed it out rather than think about it very hard. Jeff |
From: Lennert B. <bu...@gn...> - 2002-01-16 17:37:45
|
On Sat, Jan 12, 2002 at 08:54:25PM -0500, Jeff Dike wrote: > > In arch/um/kernel/irq_user.c, calling IPI_handler is now conditional > > on CONFIG_SMP, > > Because all of smp.c is conditional on CONFIG_SMP including the definition > of IPI_handler. > > > but this symbol isn't defined in _user files (causing > > IPIs to be never handled). Not sure how to fix this in the best way. > > If CONFIG_SMP isn't on, why worry about IPIs at all? If CONFIG_SMP is on, why drop all IPIs on the floor? > > In the same function, you don't have > > 'if (hard_smp_processor_id() != 0) return;'. > > Hmm. Perhaps I never sent this bit. > > No, you didn't. We just talked about it. Anyway, I stuck > 'if (current->processor != 0) return;' and that failed to compile because > it's in a _user file. So I backed it out rather than think about it > very hard. Obvious fix would be to define int is_boot_cpu() (or processor_id()) in a kernel file, and calling that from there... cheers, Lennert |