Re: [9fans] notes and traps

2008-08-30 Thread Steve Simon
purely as an aside this detailed conversation on how notes are handled in the kernel is very interesting, I was trying to understand this myself recently and gave up; I will now try again. Thanks, -Steve

Re: [9fans] notes and traps

2008-08-30 Thread erik quanstrom
I'm not claiming anyone to be wrong. I want to solve this problem. i'm not sure there is a problem with notes. but i really can't answer that question. someone with a better understanding of what notes are supposed to be could answer this. I also noted that i think this is the correct

Re: [9fans] notes and traps

2008-08-30 Thread cinap_lenrek
I'm not claiming anyone to be wrong. I want to solve this problem. i'm not sure there is a problem with notes. but i really can't answer that question. someone with a better understanding of what notes are supposed to be could answer this. I also noted that i think this is the

Re: [9fans] notes and traps

2008-08-29 Thread Kernel Panic
erik quanstrom wrote: it would also be interesting to know if you are seeing this randomly or if you can reliable reproduce this condition. i can reproduce it with this: http://cm.bell-labs.com/sources/contrib/cinap_lenrek/traptest/ 8c test.c 8a int80.s 8l test.8 int80.8 ./8.out 8.out

Re: [9fans] notes and traps

2008-08-29 Thread Kernel Panic
Kernel Panic wrote: http://cm.bell-labs.com/sources/contrib/cinap_lenrek/traptest/ 8c test.c 8a int80.s 8l test.8 int80.8 ./8.out 8.out 12490667: suicide: sys: trap: general protection violation pc=0x1333 the parent process loops and does fake syscalls while the child posts notes to it.

Re: [9fans] notes and traps

2008-08-29 Thread erik quanstrom
i can reproduce it with this: http://cm.bell-labs.com/sources/contrib/cinap_lenrek/traptest/ 8c test.c 8a int80.s 8l test.8 int80.8 ./8.out 8.out 12490667: suicide: sys: trap: general protection violation pc=0x1333 okay. it seems pretty clear from the code that you're dead

Re: [9fans] notes and traps

2008-08-29 Thread erik quanstrom
No! Notes are bufferd in the up-note[] array. If you are in the note handler, another process *can* send you further (NUser) notes without doing any harm. If we are in the note handler (up-notified == 1) and notify() gets hit, it will do nothing and return 0 see: /sys/src/9/pc/trap.c:

Re: [9fans] notes and traps

2008-08-29 Thread cinap_lenrek
i think you may be misunderstanding what i'm saying. the test for n-flag does not appear to be accidental. i am not quite sure why that test is there, but i go on the assumption that presotto knew what he was doing. if you're going to claim he was wrong, i think you'd better have good

[9fans] notes and traps

2008-08-28 Thread Kernel Panic
I run into an interesting problem with linuxemu. The problem *seems* to be that traps can be enqueued in the process note array *after* some other note causing notify() to kill us. Please correct me if i miss(understand) something here. It just hit my mind after hours of late night debugging.

Re: [9fans] notes and traps

2008-08-28 Thread erik quanstrom
it looks like you get the second trap while you are still in your notify handler, since i think this test (up-notified || up-notify==0) is for a proc in a notify handler getting a system trap (or a proc with no notify handler). it would be very interesting to know what the system trap is.