On Fri 26-05-17 12:45:55, Pasha Tatashin wrote: > Hi Michal, > > I have considered your proposals: > > 1. Making memset(0) unconditional inside __init_single_page() is not going > to work because it slows down SPARC, and ppc64. On SPARC even the BSTI > optimization that I have proposed earlier won't work, because after > consulting with other engineers I was told that stores (without loads!) > after BSTI without membar are unsafe Could you be more specific? E.g. how are other stores done in __init_single_page safe then? I am sorry to be dense here but how does the full 64B store differ from other stores done in the same function. [...] > So, at the moment I cannot really find a better solution compared to what I > have proposed: do memset() inside __init_single_page() only when deferred > initialization is enabled. As I've already said I am not going to block your approach I was just hoping for something that doesn't depend on the deferred initialization. Especially when the struct page is a small objects and it makes sense to initialize it completely at a single page. Writing to a single cache line should simply not add memory traffic for exclusive cache line and struct pages are very likely to exclusive at that stage. If that doesn't fly then be it but I have to confess I still do not understand why that is not the case. -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html