Back to Home / #uml / 2007 / 12 / Prev Day | Next Day
#uml IRC Logs for 2007-12-20

---Logopened Thu Dec 20 00:00:22 2007
02:21|-|namit [~test_acco@83-70-39-95.b-ras1.prp.dublin.eircom.net] has quit [Read error: Connection reset by peer]
03:18|-|ram [~ram@pool-96-225-204-220.ptldor.fios.verizon.net] has joined #uml
05:06|-|ftumch [~James@90.155.42.12] has quit [Quit: Goodbye.]
05:43|-|ftumch [~James@james.ec.aaisp.net.uk] has joined #uml
09:13|-|dang [~dang@aa-redwall.nexthop.com] has joined #uml
10:02|-|jdike [~jdike@pool-72-93-105-51.bstnma.fios.verizon.net] has joined #uml
10:02<jdike-#uml->>Hi guys
10:13<caker-#uml->>good morning
10:16<jdike-#uml->>and a snowy morning it is too
10:17<jdike-#uml->>forecast: little or no accumulation
10:18<jdike-#uml->>last night's forecast anyway
10:33[~]jdike #uml ponders 64-bit get_mm/switch_mm#uml-> ponders 64-bit get_mm/switch_mm
11:10|-|dgraves [~asdf@inet-netcache3-o.oracle.com] has joined #uml
11:10<dgraves-#uml->>morning jdike!
11:11<jdike-#uml->>Finally dragged your sorry ass into work, eh?
11:15<dgraves-#uml->>er... yeah. was playing wow with some friends. :)
11:19<dgraves-#uml->>jdike, so, how do we get from ptrace_report to signal_handler? Looks like there is a signal handler called, so I'm trying to find where we register that.
11:19<jdike-#uml->>what I was after was the faulting IP
11:19<jdike-#uml->>which is on the stack too
11:19<jdike-#uml->>but the other registers are nice to look at
11:22<dgraves-#uml->>jdike, x /32xw $esp good enough?
11:22<jdike-#uml->>from the signal_handler frame, yes
11:22<dgraves-#uml->>(gdb) x /32xw $esp
11:22<dgraves-#uml->>0x3cc077ec: 0x0000000b 0x3cc07804 0x3cbbd3e8 0x3cc07b00
11:22<dgraves-#uml->>0x3cc077fc: 0xffffe420 0x0000000b 0x00000033 0x00000000
11:22<dgraves-#uml->>0x3cc0780c: 0xc010007b 0x0000007b 0x3ccba1c8 0x3c5c6100
11:22<dgraves-#uml->>0x3cc0781c: 0x3cc07b00 0x3cc07ad8 0x3cbbd3e8 0x00000000
11:22<dgraves-#uml->>0x3cc0782c: 0x081f3428 0x00000000 0x0000000e 0x00000004
11:22<dgraves-#uml->>0x3cc0783c: 0x080783e9 0x00000073 0x00010246 0x3cc07ad8
11:22<dgraves-#uml->>0x3cc0784c: 0x0000007b 0x00000000 0x04000000 0x0000001c
11:22<dgraves-#uml->>0x3cc0785c: 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a
11:23<dgraves-#uml->>(gdb)
11:23<dgraves-#uml->>0x3cc0786c: 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a
11:23<dgraves-#uml->>0x3cc0787c: 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a
11:23<dgraves-#uml->>0x3cc0788c: 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a
11:23<dgraves-#uml->>0x3cc0789c: 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a
11:23<dgraves-#uml->>0x3cc078ac: 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a
11:23<dgraves-#uml->>0x3cc078bc: 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a
11:23<dgraves-#uml->>0x3cc078cc: 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a
11:23<dgraves-#uml->>0x3cc078dc: 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a 0x5a5a5a5a
11:23<dgraves-#uml->>(gdb) frame
11:23<dgraves-#uml->>#4 0x08065a82 in sig_handler () at include/asm/arch/bitops.h:246
11:23<dgraves-#uml->>246 return ((1UL << (nr & 31)) & (addr[nr >> 5])) != 0;
11:23<jdike-#uml->>OK
11:24<jdike-#uml->>p/x *((struct sigcontext *)0x3cc077f0)
11:24<dgraves-#uml->>(gdb) p/x *((struct sigcontext *)0x3cc077f0)
11:24<dgraves-#uml->>$1 = {gs = 0x7804, __gsh = 0x3cc0, fs = 0xd3e8, __fsh = 0x3cbb, es = 0x7b00,
11:24<dgraves-#uml->> __esh = 0x3cc0, ds = 0xe420, __dsh = 0xffff, edi = 0xb, esi = 0x33,
11:24<dgraves-#uml->> ebp = 0x0, esp = 0xc010007b, ebx = 0x7b, edx = 0x3ccba1c8, ecx = 0x3c5c6100,
11:24<dgraves-#uml->> eax = 0x3cc07b00, trapno = 0x3cc07ad8, err = 0x3cbbd3e8, eip = 0x0,
11:24<dgraves-#uml->> cs = 0x3428, __csh = 0x81f, eflags = 0x0, esp_at_signal = 0xe, ss = 0x4,
11:24<dgraves-#uml->> __ssh = 0x0, fpstate = 0x80783e9, oldmask = 0x73, cr2 = 0x10246}
11:24<dgraves-#uml->>that's the sig variable you wanted earlier, wasn't it?
11:25<jdike-#uml->>yup
11:25<jdike-#uml->>wait
11:25<jdike-#uml->>that's wrong
11:25<dgraves-#uml->>esp looks wrong?
11:25<jdike-#uml->>it all looks rong
11:25<jdike-#uml->>wrong
11:25<dgraves-#uml->>awesome!
11:27<jdike-#uml->>try 0x3cc07804
11:28<dgraves-#uml->>better:
11:28<dgraves-#uml->>(gdb) p/x *((struct sigcontext *)0x3cc07804)
11:28<dgraves-#uml->>$2 = {gs = 0x33, __gsh = 0x0, fs = 0x0, __fsh = 0x0, es = 0x7b,
11:28<dgraves-#uml->> __esh = 0xc010, ds = 0x7b, __dsh = 0x0, edi = 0x3ccba1c8, esi = 0x3c5c6100,
11:28<dgraves-#uml->> ebp = 0x3cc07b00, esp = 0x3cc07ad8, ebx = 0x3cbbd3e8, edx = 0x0,
11:28<dgraves-#uml->> ecx = 0x81f3428, eax = 0x0, trapno = 0xe, err = 0x4, eip = 0x80783e9,
11:28<dgraves-#uml->> cs = 0x73, __csh = 0x0, eflags = 0x10246, esp_at_signal = 0x3cc07ad8,
11:28<dgraves-#uml->> ss = 0x7b, __ssh = 0x0, fpstate = 0x0, oldmask = 0x4000000, cr2 = 0x1c}
11:28<jdike-#uml->>better
11:28<jdike-#uml->>now disas 0x80783e9 and send that to rafb
11:28<dgraves-#uml->>(the pretty numbers look similar to the other pretty numbers? :) )
11:28<jdike-#uml->>but now each pretty number is in its proper place
11:29<dgraves-#uml->>::L::
11:29<dgraves-#uml->>http://rafb.net/p/R9KRq688.html
11:30<jdike-#uml->>utrace_regset returned 0
11:31<dgraves-#uml->>uh... sure? how do you know?
11:31<jdike-#uml->>0x080783e4 <ptrace_report+38>: call 0x808f263 <utrace_regset>
11:31<jdike-#uml->>0x080783e9 <ptrace_report+43>: mov 0x1c(%eax),%edx
11:31<jdike-#uml->>cr2 is 0x1c
11:31<jdike-#uml->>therefore eax is 0
11:32<jdike-#uml->>and that's the return value from utrace_regset
11:32<dgraves-#uml->>okay, so let me see if that's good.
11:32<jdike-#uml->>no
11:32<jdike-#uml->>it's very bad
11:32<dgraves-#uml->>not just bad, *very* bad, eh? :)
11:32<jdike-#uml->>yup
11:32<dgraves-#uml->>so there's panics, and then *very bad* panics? :)
11:33<jdike-#uml->>hehe
11:33<dgraves-#uml->> if (unlikely((unsigned) which >= view->n))
11:33<dgraves-#uml->> return NULL;
11:33<jdike-#uml->>so see where utrace_regset is implemented, and how it calls UML code
11:33<jdike-#uml->>what's that?
11:34<dgraves-#uml->>utrace_regset only place that returns 0.
11:34<jdike-#uml->>well, what's which and view?
11:34<dgraves-#uml->>still trying to ascertain that. i mean, other than just what they are.
11:34<dgraves-#uml->>const struct utrace_regset *
11:34<dgraves-#uml->>utrace_regset(struct task_struct *target,
11:34<dgraves-#uml->> struct utrace_attached_engine *engine,
11:34<dgraves-#uml->> const struct utrace_regset_view *view, int which)
11:34<dgraves-#uml->>{
11:34<dgraves-#uml->> if (unlikely((unsigned) which >= view->n))
11:34<dgraves-#uml->> return NULL;
11:34<dgraves-#uml->> if (target != current)
11:34<dgraves-#uml->> wait_task_inactive(target);
11:34<dgraves-#uml->> return &view->regsets[which];
11:34<dgraves-#uml->>}
11:34<dgraves-#uml->>its short. ;)
11:36[~]dgraves #uml thinks he recalls some patch modifying this line...#uml-> thinks he recalls some patch modifying this line...
11:37<dgraves-#uml->> regset = utrace_regset(tsk, engine, utrace_native_view(tsk), 0);
11:40<dgraves-#uml->>jdike, i definitely recall modifying this:
11:40<dgraves-#uml->>extern const struct utrace_regset_view utrace_um_native;
11:40<dgraves-#uml->>static inline const struct utrace_regset_view *
11:40<dgraves-#uml->>utrace_native_view(struct task_struct *tsk)
11:40<dgraves-#uml->>{
11:40<dgraves-#uml->> return &utrace_um_native;
11:40<dgraves-#uml->>}
11:40|-|krau [~cktakahas@200.184.118.132] has quit [Quit: Varei!!!]
11:45<jdike-#uml->>OK, what's utrace_um_native, how big is it, and what's which?
11:45<dgraves-#uml->>which is 0.
11:46<dgraves-#uml->>or should be, by the function call.
11:46<dgraves-#uml->>(gdb) p utrace_um_native
11:46<dgraves-#uml->>$3 = {name = 0x0, regsets = 0x0, n = 0, e_machine = 0}
11:47<dgraves-#uml->>(gdb) p sizeof(utrace_um_native)
11:47<dgraves-#uml->>$5 = 16
11:47<jdike-#uml->>well, n == 0
11:47<dgraves-#uml->>i'm trying to figure out why n = 0.
11:48<dgraves-#uml->>i think its supposed to get set in the ptrace code?
11:48<dgraves-#uml->>jdike, yes. exactly. :)
11:49<dgraves-#uml->>no one assigns to it by name, so I'm looking for similar struct usages with different variables.
11:50<dgraves-#uml->> * Return the regset view (see below) that is native for the given process.
11:50<dgraves-#uml->> * For example, what it would access when it called ptrace.
11:50<dgraves-#uml->> * Throughout the life of the process, this only changes at exec.
11:51<jdike-#uml->>I think that's in the little utrace patch I gave you
11:52<dgraves-#uml->>"that"?
11:53<jdike-#uml->>utrace_um_native
11:54<dgraves-#uml->>it is, in fact, right out of that patch.
11:54<dgraves-#uml->>+extern const struct utrace_regset_view utrace_um_native;
11:54<dgraves-#uml->>+static inline const struct utrace_regset_view *
11:54<dgraves-#uml->>+utrace_native_view(struct task_struct *tsk)
11:54<dgraves-#uml->>+{
11:54<dgraves-#uml->>+ return &utrace_um_native;
11:54<dgraves-#uml->>+}
11:54<dgraves-#uml->>+
11:54<dgraves-#uml->>+
11:54<dgraves-#uml->>+#endif
11:54<jdike-#uml->>where's the definition?
11:56<jdike-#uml->>what function called utrace_regset?
11:56<dgraves-#uml->>that's in a .h file, so its the definition and implementtation at the same time?
11:56<dgraves-#uml->>in this case, ptrace_report.
11:56<dgraves-#uml->>I see several others calling utrace_regset, but I don't see anything setting the registers.
11:57|-|tasaro [~tom@ns.theshore.net] has quit [Read error: Operation timed out]
11:58<jdike-#uml->>regset = utrace_regset(tsk, engine, utrace_native_view(tsk), 0);
11:58<jdike-#uml->>it'll be enough to define just the general registers
11:59<dgraves-#uml->>okay, so we use the writeback then to actually define those registers at some point?
11:59<jdike-#uml->>writeback?
12:00<dgraves-#uml->>if (regset->writeback)
12:00<dgraves-#uml->> (*regset->writeback)(tsk, regset, 0);
12:01<dgraves-#uml->>otherwise, i don't see how utrace_um_native becomes anything otehr than NULL\0.
12:01|-|linbot [~supybot@ns.theshore.net] has quit [Ping timeout: 480 seconds]
12:01<jdike-#uml->>look at the i386 definition
12:01<dgraves-#uml->>Woot! i bored linbot out of hit mind! ;)
12:01<dgraves-#uml->>definition of utrace_um_native?
12:01<jdike-#uml->>now we can party
12:01<jdike-#uml->>the logger is gone
12:02|-|da-x [~karrde@xiv-glob.ser.netvision.net.il] has quit [Quit: Client exiting]
12:02<dgraves-#uml->>::LOL::
12:02<jdike-#uml->>look at utrace_i386_native
12:02<dgraves-#uml->>Oo... we're missing lots of stuff.
12:02<dgraves-#uml->>Which is why the name field looked odd?
12:03<jdike-#uml->>I though it at least had a name
12:04[~]dgraves #uml needs to redownload a new kernel to verify.#uml-> needs to redownload a new kernel to verify.
12:04<dgraves-#uml->>hang on.
12:09|-|krau [~cktakahas@200.184.118.132] has joined #uml
12:09<dgraves-#uml->>hrm. both the definition of utrace_um_native and tracehook.h has gone away.
12:09<dgraves-#uml->>in 2.6.23.12
12:11<jdike-#uml->>they were never there
12:11<dgraves-#uml->>oh.
12:11[~]dgraves #uml is trying 2.6.20 now.#uml-> is trying 2.6.20 now.
12:12<jdike-#uml->>utrace has never been in mainline
12:12<dgraves-#uml->>oh.
12:12<jdike-#uml->>it was in -mm for a while, but got dropped
12:12<dgraves-#uml->>red hat only thing?
12:12<jdike-#uml->>yup
12:12<dgraves-#uml->>LOVELY!
12:12[~]dgraves #uml parties with the proprietary open source!#uml-> parties with the proprietary open source!
12:15<dgraves-#uml->>jdike, would it be good enough to grab the i386 definition of native_regsets?
12:16<jdike-#uml->>Roland is trying to get it in
12:16<dgraves-#uml->>ah
12:16<jdike-#uml->>he's starting with the ptrace cleanups
12:16<jdike-#uml->>start with the i386 definition
12:16<jdike-#uml->>just the first regset will be fnie
12:16<jdike-#uml->>fine
12:16|-|VS_ChanLog [~stats@ns.theshore.net] has joined #uml
12:17|-|caker [~caker@caker.netrep.oftc.net] has joined #uml
12:17|-|linbot [~supybot@ns.theshore.net] has joined #uml
12:19|-|tasaro [~tom@ns.theshore.net] has joined #uml
12:19<dgraves-#uml->>jdike, /*
12:19<dgraves-#uml->> * EM_* value for which this is the native view, if any.
12:19<dgraves-#uml->> */
12:19<dgraves-#uml->> u16 e_machine;
12:19<dgraves-#uml->>is there a special value for uml?
12:19<jdike-#uml->>no
12:19<jdike-#uml->>the same as the host
12:20<dgraves-#uml->>thought so, but didn't see one.
12:20<dgraves-#uml->>when I didn't see one.
12:22<dgraves-#uml->>can i use the same genregs_get and genregs_set, jdike?
12:23<jdike-#uml->>you'll need to change access into current->threads, but yes
12:24<dgraves-#uml->>as opposed to the call to getregs in _get?
12:24[~]dgraves #uml thought we had a function to get\set UML regs already.#uml-> thought we had a function to get\set UML regs already.
12:26<dgraves-#uml->>jdike, getregs (which getregs_get) calls uses:
12:26<dgraves-#uml->>static unsigned long getreg(struct task_struct *child,
12:26<dgraves-#uml->> unsigned long regno)
12:26<dgraves-#uml->>{
12:26<dgraves-#uml->> unsigned long retval = ~0UL;
12:26<dgraves-#uml->> switch (regno >> 2) {
12:26<dgraves-#uml->> case FS:
12:26<dgraves-#uml->> retval = child->thread.fs;
12:26<dgraves-#uml->>i want retval = current->threads?
12:26<dgraves-#uml->>wait, that doesn't seem right.
12:26<jdike-#uml->>if the API fits, then use it
12:29<dgraves-#uml->>well, it compiles... :)
12:29<dgraves-#uml->>we'll see how it does in a minute.
12:30|-|mgross [~mgross@pool-71-245-99-169.ptldor.fios.verizon.net] has joined #uml
12:38<dgraves-#uml->>jdike, much better!
12:38<dgraves-#uml->>agraves-uml:~ # strace ls
12:39<dgraves-#uml->>upeek: ptrace(PTRACE_PEEKUSER,3021,44,0): Input/output error
12:39<dgraves-#uml->>agraves-uml:~ # anaconda-ks.cfg membership.sh start_ade.new useful_cmds.txt
12:39<dgraves-#uml->>install.log oui_setup.sh start_net.sh VMwareTools-3.0.1-32039.tar
12:39<dgraves-#uml->>install.log.syslog rc.uml symbols.sh
12:39<jdike-#uml->>cool
12:39[~]dgraves #uml might be able to get back to the original issue now. ;)#uml-> might be able to get back to the original issue now. ;)
12:39<dgraves-#uml->>jdike, do you have a uml up and running now?
12:39<jdike-#uml->>no
12:39<dgraves-#uml->>k
12:39<jdike-#uml->>why?
12:40<dgraves-#uml->>i'd like to see if udevtest works for you, or if its just me:
12:40<dgraves-#uml->>agraves-uml:~ # udevtest /sys/block/ubda
12:40<dgraves-#uml->>main: unable to open '/sys/block/ubda'
12:40<dgraves-#uml->>agraves-uml:~ # ls /sys/block/
12:40<dgraves-#uml->>ubda ubdb ubdc ubdd
12:47|-|tyler29 [~tyler@ARennes-257-1-83-37.w86-199.abo.wanadoo.fr] has joined #uml
12:49<dgraves-#uml->>anyone have a recent UML session running with udev?
12:52|-|mgross [~mgross@pool-71-245-99-169.ptldor.fios.verizon.net] has quit [Quit: Ex-Chat]
12:54<jdike-#uml->>udevtest /sys/block/ubda
12:54<jdike-#uml->>main: unable to open '/sys/block/ubda'
12:54<jdike-#uml->>lstat64("/sys/sys/block/ubda"
12:55<jdike-#uml->>good error message
12:55<jdike-#uml->>this works:
12:55<jdike-#uml->>udevtest /block/ubda
12:55<jdike-#uml->>for whatever bizarre reason
12:55<dgraves-#uml->>BAH.
12:56<dgraves-#uml->>thanks, jdike.
12:56<dgraves-#uml->>WTF were they thinking?
12:56[~]dgraves #uml hopes that lack of strace won't cause more issues in the future. :)#uml-> hopes that lack of strace won't cause more issues in the future. :)
13:14<caker-#uml->>what distro is that? mine works just fine (but takes an extra param to udevtest -- subsystem)
13:15<dgraves-#uml->>caker, mine is EL5 (Oracle Enterprise, based off of RHEL)
13:15<dgraves-#uml->>Not sure what jdike is using, but I assume similar.
13:15<dgraves-#uml->>you got gentoo, right?
13:15<caker-#uml->>that UML was ubuntu
13:16<dgraves-#uml->>huh.
13:32|-|balbir [~balbir@122.167.200.72] has quit [Ping timeout: 480 seconds]
13:37|-|tyler29 [~tyler@ARennes-257-1-83-37.w86-199.abo.wanadoo.fr] has quit [Ping timeout: 480 seconds]
13:43|-|balbir [~balbir@122.167.216.152] has joined #uml
13:47|-|tyler29 [~tyler@ARennes-257-1-139-12.w86-210.abo.wanadoo.fr] has joined #uml
14:30|-|dgraves [~asdf@inet-netcache3-o.oracle.com] has quit []
14:48|-|dstuxo [~dstuxo@212.234.51.91] has joined #uml
14:48|-|dstuxo [~dstuxo@212.234.51.91] has quit []
14:50|-|kos_tom [~thomas@col31-3-82-247-183-72.fbx.proxad.net] has joined #uml
14:54<Magotari-#uml->>jdike: Are 2.4.X host kernels with modern guests supported? I'm pondering installing DSL onto my laptop, but I can't live without a virtual machine.
14:55<jdike-#uml->>it should work, as long as you don't try to boot a distro in UML that wants TLS
14:55<jdike-#uml->>but I don't know that that's been tested in ages
14:56|-|tyler29 [~tyler@ARennes-257-1-139-12.w86-210.abo.wanadoo.fr] has quit [Ping timeout: 480 seconds]
15:11|-|tyler29 [~tyler@ARennes-257-1-87-145.w86-199.abo.wanadoo.fr] has joined #uml
15:45<dang-#uml->>Heh. I haven't even seen a 2.4 kernel in a while, and we run *ancient* crap here...
15:48<jdike-#uml->>I thought even the embedded people were getting used to the idea of 2.6
15:54<jdike-#uml->>new_mm and switch_mm work in 64-bit UML
16:31<Magotari-#uml->>I like some embedded ideas. By removing a general use case designed to work anywhere...
16:32<Magotari-#uml->>You can have a very specific bit of code which is simpler.
16:38<ds2-#uml->>Think I tried it a few months ago and it worked
16:38<ds2-#uml->>but my 2.4 had some old SKA patches
16:45<jdike-#uml->>syscall_287(0x4, 0x1, 0x7fffc73279f0, 0x500ec0, 0x7973765b20202020, 0x7fffc7327b98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = -1 (errno 22)
16:46<jdike-#uml->>x86_64 being bad
17:44<jdike-#uml->>my trivial test works on x86_64
17:58|-|dang [~dang@aa-redwall.nexthop.com] has quit [Quit: Leaving.]
18:16|-|tyler29 [~tyler@ARennes-257-1-87-145.w86-199.abo.wanadoo.fr] has quit [Remote host closed the connection]
18:23|-|hfb [~hfb@pool-71-106-219-180.lsanca.dsl-w.verizon.net] has joined #uml
18:39<jdike-#uml->>UML boots on x86_64 with new_mm/switch_mm
18:47|-|kos_tom [~thomas@col31-3-82-247-183-72.fbx.proxad.net] has quit [Quit: I like core dumps]
19:17<caker-#uml->>cool
19:17<caker-#uml->>jdike: will skas4 have less overhead than the other skas methods, eventually?
19:24<Magotari-#uml->>caker: FINALLY! I waited for days till someone asks that question.
19:58|-|hfb [~hfb@pool-71-106-219-180.lsanca.dsl-w.verizon.net] has quit [Quit: Leaving]
19:58<jdike-#uml->>right now, I'm working on reproducing the functionality in skas3
19:58<jdike-#uml->>so, at this point, I'm catching up to skas3
20:00<jdike-#uml->>however, there's an old idea which becomes a lot easier to implement once I have the current work in place
20:01<jdike-#uml->>essentially, self-tracing, so you have one process hopping between kernel and process, rather than a kernel process ptracing a userspace process
20:01<jdike-#uml->>and that might get us past skas3, performance-wise
20:04<Magotari-#uml->>Lovely news. More testing material too. Can't go wrong.
20:08<Magotari-#uml->>I have been thinking, maybe hack the libc to use a different method of system calls? Right now as far as I know we visit the host kernel once during a syscall. Syscalls are int 80, right? Maybe there could be a way around it somehow...
20:08<Magotari-#uml->>Of course it would mean having to use a different libc, but well...
20:09<jdike-#uml->>I have a plan there, too
20:09<jdike-#uml->>you don't need a new libc
20:09<Magotari-#uml->>A step in front of me, eh? :)
20:09<jdike-#uml->>libc will make system calls through a vdso if you provide one
20:10<Magotari-#uml->>Well. Guess that does it then.
20:11<jdike-#uml->>right now, a minimal system call is wait(), ptrace(PTRACE_GETREGS), ptrace(PTRACE_SETREGS), ptrace(PTRACE_SYSCALL),
20:11<Magotari-#uml->>Great, a bit more and we will be able to play in the same sandbox as the xen people, and the latency will go up too...
20:11<Magotari-#uml->>Ouch. That's four.
20:12<jdike-#uml->>I can replace the GETREGS and SETREGS by having a UML vdso write its registers in a shared page before signalling the kernel with an int3 or something
20:13<jdike-#uml->>when the kernel is ready to return from the system call, it writes the registers back to that page, the process restores them, and continues on
20:13<Magotari-#uml->>By kernel you mean hte guest, right?
20:13<jdike-#uml->>yes
20:13<Magotari-#uml->>Ok, thanks.
20:13<jdike-#uml->>so a system call becomes wait(), ptrace(PTRACE_SYSCALL)
20:14<Magotari-#uml->>Brilliant.
20:19<jdike-#uml->>x86_64 is happily doing kernel builds with the mm stuff
20:20<Magotari-#uml->>And did you try to crash_it?
20:21<jdike-#uml->>no
20:22<Magotari-#uml->>I'm going to sleep now. 2:20am, and no code written all day. Horrible.
20:34[~]jdike #uml investigates PTRACE_SWITCH_MM#uml-> investigates PTRACE_SWITCH_MM
21:33|-|aindilis [~aindilis@75.146.96.197] has joined #uml
21:35|-|Infinito [argos@201-3-115-31.gnace701.dsl.brasiltelecom.net.br] has joined #uml
22:05|-|IntuitiveNipple [~TJ@alexandros.tjworld.net] has joined #uml
22:08|-|Infinito [argos@201-3-115-31.gnace701.dsl.brasiltelecom.net.br] has quit [Quit: Quitte]
22:59|-|jdike [~jdike@pool-72-93-105-51.bstnma.fios.verizon.net] has quit [Quit: Leaving]
23:58|-|VS_ChanLog [~stats@ns.theshore.net] has left #uml [Rotating Logs]
23:59|-|VS_ChanLog [~stats@ns.theshore.net] has joined #uml
---Logclosed Fri Dec 21 00:00:56 2007