[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/arm: io: add function swap_mmio_handler()
On 6/12/19 17:08, Julien Grall wrote: Hi, On 6/12/19 6:42 AM, Baodong Chen wrote:Swap function can be used when calling sort(). or else, the default swap function generic_swap() is used, which is a little inefficient.I am not entirely convince this will be more efficient. mmio_handler does not fit in 64 bit, so the compiler may decide to do either multiple load or replace with a memcpy. Hello Julien, I have checked the disassemble result,and IIUC generic_swap has a loop so it should be a little inefficient. I'm not expert about hardware, please correct me if i'm wrong. 000000000022ee88 <generic_swap>:22ee88: d2800003 mov x3, #0x0 // #0 22ee8c: d503201f nop 22ee90: 38636825 ldrb w5, [x1, x3] 22ee94: 38636804 ldrb w4, [x0, x3] 22ee98: 38236805 strb w5, [x0, x3] 22ee9c: 38236824 strb w4, [x1, x3] 22eea0: 91000463 add x3, x3, #0x1 22eea4: 4b030044 sub w4, w2, w3 22eea8: 7100009f cmp w4, #0x0 22eeac: 54ffff2c b.gt 22ee90 <generic_swap+0x8> 22eeb0: d65f03c0 ret 22eeb4: d503201f nop 0000000000242db8 <swap_mmio_handler>: 242db8: a9400c22 ldp x2, x3, [x1] 242dbc: d10083ff sub sp, sp, #0x20 242dc0: a9401404 ldp x4, x5, [x0] 242dc4: a9000c02 stp x2, x3, [x0] 242dc8: a9410c02 ldp x2, x3, [x0, #16] 242dcc: a9411c26 ldp x6, x7, [x1, #16] 242dd0: a9011c06 stp x6, x7, [x0, #16] 242dd4: a9001424 stp x4, x5, [x1] 242dd8: a9010c22 stp x2, x3, [x1, #16] 242ddc: 910083ff add sp, sp, #0x20 242de0: d65f03c0 ret 242de4: d503201f nop So at best this feels some micro-optimization. But then, this is only call a limited number of time at each domain build. Is it really worth it? It's not hot path here. Not sure about worth.Personally i will try my best to do things well according to my understanding. On a side note, I have noticed you are sending a lot of optimization/clean-up patch. What is your end goal here? My goal is to understand how xen works well. If it is to improve the performance, then there are much bigger fish to fry within Xen code base. I am happy to point some of them based on where you are looking to improve. Surly i want to improve performance.Features like Fast Startup ( I learned from xen summit 2018, samsung automotive presentation). But currently i don't understand xen well, only a few weeks experience. I'm afraid can't catch big fish. Cheers, _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |