[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] VM System Calls
Hello I had to stay quiet for a few weeks to work on another project. I have a few days ahead, and I was looking at that again. I found some doc explaining the role of the different registers, and understood how to get the info i wanted in them. However, even if i understood how to get the PID of the process, i do not manage to compile Xen. I'm retrieving the value in the ESP pointer, i do the AND with the mask to get the address of the thread_info structure that represents the process. Then i wanna copy this structure in a variable and extract some more info. But the thread_info structure is only defined in the IA64 aprt of the code, and if i add the definition from the kernel, it give me an error at building, telling me that it is declared into a parameter list, and thus scope limited. Any idea ? Thanks Fred Le Fri, 28 Nov 2008 12:05:21 +0000, "George Dunlap" <George.Dunlap@xxxxxxxxxxxxx> a Ãcrit : > It sounds like to start with, you should probably look into xentrace: > > * Add a new trace record type to xen/include/public/trace.h > * Create a struct, up to 28 bytes, and fill it with the information > you want; then call trace_var(). > * In dom0, call xentrace -e [hex address of record type] > * You can use the xentrace_formats to parse the binary file, or write > your own parser; or, wait until I release my xentrace analysis tool > (should be within a week hopefully) > > Once you have the basic stuff going, you can think about writing your > own hypervisor-to-domU data path if you don't want to use xentrace. > > Peace, > -George > > On Fri, Nov 28, 2008 at 11:34 AM, Frederic Beck > <frederic.beck@xxxxxxxx> wrote: > > hello > > > > thanks ! Now i see them. I'll be able to begin working a little bit > > more, and understand how the traps work with some printing :) > > > > I'll look also to find a way to log information into a file in > > order to be able to analyze the output. > > > > I may recontact you in case of trouble (in the worst case will be > > beginning of next year, i may have to stop working on that in order > > to switch a different project that needs work done fast) > > > > Thanks a lot > > Fred > > > > Le Fri, 28 Nov 2008 11:19:43 +0000, > > "George Dunlap" <dunlapg@xxxxxxxxx> a Ãcrit : > > > >> Have you tried "xm dmesg"? > >> > >> -George > >> > >> On Thu, Nov 27, 2008 at 4:19 PM, Frederic Beck > >> <frederic.beck@xxxxxxxx> wrote: > >> > Hello > >> > > >> > I commented out the lines you told me, compiled the hypervisor, > >> > and i'm booting it with my 2.6.26 kernel. It is working fine, my > >> > 2 VMs (one Linux and one XP) are working fine. > >> > > >> > I was trying to check the execution by printing out some debug > >> > info. I wanted first to log the info in a specific file, but i > >> > had troubles when compiling with redefinition troubles. I tried > >> > sysloging and got the same troubles. > >> > > >> > I finally decided to use the kernel logging mechanisms. I put > >> > several printk and gdprintk in traps.c:trace_pv_trap and > >> > do_guest_trap but they are never printed out (at least i was > >> > greping in /var/log). > >> > > >> > thus i tried to put some common/xmalloc.c:xfree and xmalloc. I > >> > never see any message neither. > >> > > >> > Am i using bad logging mechanisms or simply looking in the wrong > >> > output ? > >> > > >> > Thanks > >> > Fred > >> > > >> > Le Wed, 26 Nov 2008 17:30:21 +0100, > >> > Frederic Beck <frederic.beck@xxxxxxxx> a Ãcrit : > >> > > >> >> Well, stupid question in then end. the hypervisor is in > >> >> xen/ .... > >> >> > >> >> I managed to compile a 3.3.0 hypervisor and make my 2.6.26 > >> >> kernel running > >> >> > >> >> fighting now with the tools with compiling errors, but it's > >> >> advancing :) > >> >> > >> >> thanks > >> >> Fred > >> >> > >> >> Le Wed, 26 Nov 2008 11:57:03 +0100, > >> >> Frederic Beck <frederic.beck@xxxxxxxx> a Ãcrit : > >> >> > >> >> > Just another quick question. > >> >> > > >> >> > After modifying traps.c, to recompile the hypervisor, do I > >> >> > need to recompile the whole sources with a make world ? Or is > >> >> > it unnecessary ? > >> >> > > >> >> > At the moment I'm running a Debian unstable with the debian > >> >> > packages distribution of Xen with hypervisor 3.2 and kernel > >> >> > 2.6.26, and the 2.6.18 is not running on my computer. > >> >> > > >> >> > The idea would be to compile only the hypervisor, but id did > >> >> > not found yet in the documentation how to do it. I'll keep on > >> >> > looking, but is you have an idea it would be welcomed :) > >> >> > > >> >> > Thanks > >> >> > Fred > >> >> > > >> >> > Le Wed, 26 Nov 2008 09:50:32 +0100, > >> >> > Frederic Beck <frederic.beck@xxxxxxxx> a Ãcrit : > >> >> > > >> >> > > Hello > >> >> > > > >> >> > > > If you're not averse to modifying the hypervisor, you > >> >> > > > should be able to arrange to get what you want. > >> >> > > > >> >> > > Not at all :) It's what i was planning to do in the first > >> >> > > case. > >> >> > > > >> >> > > > For 32-bit guests, we allow the system call to trap > >> >> > > > directly from userspace into the PV kernel. But that's > >> >> > > > actually an optimization; it used to be the case that if > >> >> > > > you disable that direct-trap, then it will trap to Xen, > >> >> > > > and Xen will forward it on to the PV kernel. This will > >> >> > > > make guest system calls slightly more expensive, but it > >> >> > > > will allow you to add the tracing / instrumentation you > >> >> > > > want. > >> >> > > > > >> >> > > > Yes, it looks like if you comment out the following line > >> >> > > > in xen/arch/x86/traps.c:do_set_trap_table(): > >> >> > > > if ( cur.vector == 0x80 ) > >> >> > > > init_int80_direct_trap(curr); > >> >> > > > > >> >> > > > Then all guest traps, including system call, will go > >> >> > > > through traps.c:do_guest_trap(), which already traces the > >> >> > > > trap number. If you want more information, you can add > >> >> > > > more trace info there. > >> >> > > > >> >> > > Thanks a lot for your help, i'll give it a try. I just > >> >> > > commented out that part, i'll recompile the hypervisor and > >> >> > > play with it. > >> >> > > > >> >> > > I'll let you know how it works out. > >> >> > > > >> >> > > Thanks > >> >> > > Fred > >> >> > > > >> >> > > _______________________________________________ > >> >> > > Xen-devel mailing list > >> >> > > Xen-devel@xxxxxxxxxxxxxxxxxxx > >> >> > > http://lists.xensource.com/xen-devel > >> >> > > >> >> > _______________________________________________ > >> >> > Xen-devel mailing list > >> >> > Xen-devel@xxxxxxxxxxxxxxxxxxx > >> >> > http://lists.xensource.com/xen-devel > >> >> > >> >> _______________________________________________ > >> >> Xen-devel mailing list > >> >> Xen-devel@xxxxxxxxxxxxxxxxxxx > >> >> http://lists.xensource.com/xen-devel > >> > > >> > _______________________________________________ > >> > Xen-devel mailing list > >> > Xen-devel@xxxxxxxxxxxxxxxxxxx > >> > http://lists.xensource.com/xen-devel > >> > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |