[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC v2 6/9] xen/arm: Add handling write fault for dirty-page tracing
On Wed, 2013-07-03 at 18:15 +0900, Jaeyong Yoo wrote: > From: Elena Pyatunina <e.pyatunina@xxxxxxxxxxx> > > Add handling write fault in do_trap_data_abort_guest for dirty-page > tracing. Mark dirty function makes the bitmap of dirty pages. You've gone with the model of allocating a bitmap when logdirty is enabled and updating it directly from the fault handler? The bit map is based around a three level structure mirroring the p2m tables? I had been considering the option of reusing one of the bits available for software use in the p2m entries to track the dirty status and walking the p2m when the toolstack asked for the current bitmap instead. I think this would have less memory overhead and also would allow us to be lock free on the fault handling path (by using suitable atomic exchanges on the p2m entries), as well as avoiding memory allocations on that path. I think we'd want to establish a linear map of the current guest p2m for these purposes so we could also avoid all the map_domain_page stuff in the fault path. I think there is enough virtual address space left for that even on 32-bit, it's less critical on 64-bit anyway since we are about to have a direct map of RAM available to us. > diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c > index 398d209..9927712 100644 > --- a/xen/arch/arm/traps.c > +++ b/xen/arch/arm/traps.c > @@ -1011,6 +1011,13 @@ static void do_trap_data_abort_guest(struct > cpu_user_regs *regs, > if ( rc == -EFAULT ) > goto bad_data_abort; > > + /* handle permission fault on write */ > + if ((dabt.dfsc & 0x3f) == (FSC_FLT_PERM + 3) && dabt.write) Can we get some #defines for these magic constants please. > + { > + if (handle_page_fault(current->domain, info.gpa) == 0) > + return; > + } > + > if (handle_mmio(&info)) Since you handle page fault first, won't this make MMIO trapping regions writable? Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |