[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] device-mmio emulation in Xen
Hi Tim, Thanks for your reply. On the same topic, I see a lot of MMIO operations and corresponding faults on network copy operations. However, I do not see faults at the same rate on disk operations or graphics operations. Is it my perceptions or there are different tricks/methods to emulate different devices? Why networking load is showing so many MMIO faults, but not other workloads? Thanks, Abhinav --- On Tue, 5/1/10, Tim Deegan <Tim.Deegan@xxxxxxxxxx> wrote: > From: Tim Deegan <Tim.Deegan@xxxxxxxxxx> > Subject: Re: [Xen-devel] device-mmio emulation in Xen > To: "Abhinav Srivastava" <abhinavs_iitkgp@xxxxxxxxxxx> > Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx> > Date: Tuesday, 5 January, 2010, 10:08 PM > At 16:32 +0000 on 05 Jan > (1262709121), Abhinav Srivastava wrote: > > 1. How does Xen know which code path to execute? What > I am noticing is > > that sometimes it goes to all the way till the end of > the page fault > > handler code to call handle_mmio function, and > sometimes it goes into > > the fast path to call this function, bypassing all the > page fault > > handlers code? Why it does not go into the fast path > all the time? OR > > Xen does something at the first time so that second > time, the execution > > can directly go into the fast path? > > Yes. In the slow path, it creates a deliberately > invalid shadow PTE. > When the MMU signals an invalid-PTE fault, Xen knows tro > take the fast > path. > > > And, does this needs to be done for all physical pages > given to MMIO? > > Yes. Some kind of pagefault needs to happen for > emulated MMIO. The > fast-path trick just makes the fault handler faster. > > Tim. > > > > > Thanks, > > Abhinav > > > > > > > > --- On Tue, 5/1/10, Tim Deegan <Tim.Deegan@xxxxxxxxxx> > wrote: > > > > > From: Tim Deegan <Tim.Deegan@xxxxxxxxxx> > > > Subject: Re: [Xen-devel] device-mmio emulation in > Xen > > > To: "Abhinav Srivastava" <abhinavs_iitkgp@xxxxxxxxxxx> > > > Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" > <xen-devel@xxxxxxxxxxxxxxxxxxx> > > > Date: Tuesday, 5 January, 2010, 9:30 PM > > > Hi, > > > > > > At 15:32 +0000 on 05 Jan (1262705557), Abhinav > Srivastava > > > wrote: > > > > I noticed that during a network copy > operation Xen > > > page faults a lot and control goes to > sh_page_fault > > > function. When I printed some debugging info, it > showed me > > > gmfn = -1. Then the execution goes through the > regular path > > > of the page fault handler code, which means it > creates an > > > entry using shadow_get_and_create_l1e, propagates > it using > > > l1e_propagate_from_guest, and finally updates the > entry > > > using shadow_set_l1e. It finally goes into the > device-model > > > mmio condition. In this condition, it extracts a > guest > > > physical address and calls "goto mmio", which in > turn calls > > > handle_mmio function that emulates the > instruction. > > > > > > > > However with the gmfn = -1 condition, the > execution > > > sometimes directly goto > > > > to handle_mmio function using the > fast_fault_path with > > > going through the regular path. It seems like > there are two > > > possible execution paths, and I did not > understand which one > > > is chosen when? > > > > > > > > > > > /****************************************************************************** > > > * We implement a "fast path" for two > special cases: faults > > > that require > > > * MMIO emulation, and faults where the > guest PTE is not > > > present. We > > > * record these as shadow l1 entries that > have reserved > > > bits set in > > > * them, so we can spot them immediately in > the fault > > > handler and handle > > > * them without needing to hold the shadow > lock or walk the > > > guest > > > * pagetables. > > > * > > > * This is only feasible for PAE and 64bit > Xen: 32-bit > > > non-PAE PTEs don't > > > * have reserved bits that we can use for > this. > > > */ > > > > > > > I have some questions related to this > behavior: > > > > > > > > 1. Why are there so many faults duing > network copy > > > operation? > > > > > > The faults are a HVM guest doing MMIO operations > to control > > > its emulated > > > network card. > > > > > > > 2. What does gmfn = -1 signify? Is it > reserved for > > > mmio addresses? > > > > > > It's INVALID_MFN. It means there is no memory > mapped > > > at the address the > > > guest accessed. Xen treats that as MMIO, > though > > > there's a plan to have > > > MMIO regions explicitly registered instead. > > > > > > > 3. How does Xen handle this gmfn = -1? It > seems like > > > on the regular path > > > > it still creates, propagates, and updates > entries for > > > gmfn = -1. How does Xen handles this at the > shadow page > > > table level? > > > > > > Yes, it creates a deliberately invalid shadow > PTE; then in > > > the pagefault > > > handler it can use the pagefault error code and > the > > > contents of the PTE > > > to skip the bulk of the shadow fault handling and > go > > > straight to handle_mmio. > > > > > > > 4. What are these two code execution paths, > and when > > > does Xen decide which > > > > path to choose? > > > > > > > > 5. Finally, is there anyway these faults can > be > > > reduced? > > > > > > Yes, use PV drivers in the guest. That > eliminates the > > > whole > > > emulated-MMIO system, and all the pagefaults > associated > > > with it. > > > > > > Cheers, > > > > > > Tim. > > > > > > > I would very appreciate any help in this > regard. > > > > > > > > Thanks, > > > > Abhinav > > > > > > > > > > > > > > > > The INTERNET now has a > > > personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/ > > > > > > > > > _______________________________________________ > > > > Xen-devel mailing list > > > > Xen-devel@xxxxxxxxxxxxxxxxxxx > > > > http://lists.xensource.com/xen-devel > > > > > > -- > > > Tim Deegan <Tim.Deegan@xxxxxxxxxx> > > > Principal Software Engineer, Citrix Systems > (R&D) Ltd. > > > [Company #02300071, SL9 0DZ, UK.] > > > > > > > > > The INTERNET now has a > personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/ > > -- > Tim Deegan <Tim.Deegan@xxxxxxxxxx> > Principal Software Engineer, Citrix Systems (R&D) Ltd. > [Company #02300071, SL9 0DZ, UK.] > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel > The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |