[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1 6/9] livepatch: Initial ARM64 support.
>> + flush_xen_text_tlb_local(); > > > I am a bit confused. In your comment you mention the branch but flush the > TLBs. The two are not related. That code also flushes the I-cache (which sounds redundant with invalidate_icache). And it also does 'isb' ("Ensure synchronization with previous changes to text ") which invalidate_icache() does not. I am wondering if should just move 'isb' in invalidate_icache() and drop altogether the call to flush_xen_text_tlb_local()? It works fine in simulator > > However, I would prefer the branch predictor to be flushed directly in > invalidate_icache by calling BPIALLIS. This is because flushing the cache > means that you likely want to flush the branch predictor too. I had no trouble adding invalidate_icache to asm-arm/arm32/page.h and having it do : asm volatile ( CMD_CP32(ICIALLUIS) /* Flush I-cache. */ CMD_CP32(BPIALLIS) /* Flush branch predictor. */ : : : "memory"); But obviously that does not help ARM64. And that is is where I hit an snag. "bp iallis" instruction does not compile? (I also tried "bp iall", "bpiallis"). The error is: {standard input}: Assembler messages: {standard input}:454: Error: unknown mnemonic `bpiallis' -- `bpiallis' Ideas? _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |