Hi Marc, On 2020/7/28 15:52, Marc Zyngier wrote: > On 2020-07-28 03:11, zhukeqian wrote: >> Hi Marc, > > [...] > >>> But you are still reading the leaf entries of the PTs, hence defeating >>> any sort of prefetch that the CPU could do for you. And my claim is >>> that reading the bitmap is much faster than parsing the PTs. Are you >>> saying that this isn't the case? >> I am confused here. MMU DBM just updates the S2AP[1] of PTs, so dirty >> information >> is not continuous. The smallest granularity of read instruction is one >> byte, we must >> read one byte of each PTE to determine whether it is dirty. So I think >> the smallest >> reading amount is 512 bytes per 2MB. > > Which is why using DBM as a way to implement dirty-logging doesn't work. > Forcing the vcpu to take faults in order to update the dirty bitmap > has the benefit of (a) telling you exactly what page has been written to, > (b) *slowing the vcpu down*. > > See? no additional read, better convergence ratio because you are not > trying to catch up with a vcpu running wild. You are in control of the > dirtying rate, not the vcpu, and the information you get requires no > extra work (just set the corresponding bit in the dirty bitmap). OK, in fact I have considered some of these things before. You are right, DBM dirty logging is not suitable for guest with high dirty rate which even causes Qemu throttling. It only reduce side-effect of migration on guest with low dirty rate. I am not meaning to push this defective patch now, instead I am trying to find a software approach to solve hardware drawback. However, currently we do not have a perfect approach. > > Honestly, I think you are looking at the problem the wrong way. > DBM at S2 is not a solution to anything, because the information is > way too sparse, and it doesn't solve the real problem, which is > the tracking of dirty pages caused by devices. > > As I said twice before, I will not consider these patches without > a solution to the DMA problem, and I don't think DBM is part of > that solution. For that ARM SMMU HTTU do not have PML like feature, so the behavior of dirty log sync will be very similar with which of the MMU DBM. My original idea is that we can support MMU DBM firstly and then support SMMU HTTU based on MMU DBM. Sure, we can leave this patch here and hope we can pick it up at future if hardware is ready :-) . Many thanks for your review ;-) . Thanks, Keqian _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm