On 09/12/2016 05:54 AM, Michal Hocko wrote: >> > In order to fix this bug, we make 'file->version' indicate the end address >> > of current VMA > Doesn't this open doors to another weird cases. Say B would be partially > unmapped (tail of the VMA would get unmapped and reused for a new VMA. In the end, this interface isn't about VMAs. It's about addresses, and we need to make sure that the _addresses_ coming out of it are sane. In the case that a VMA was partially unmapped, it doesn't make sense to show the "new" VMA because we already had some output covering the address of the "new" VMA from the old one. > I am not sure we provide any guarantee when there are more read > syscalls. Hmm, even with a single read() we can get inconsistent results > from different threads without any user space synchronization. Yeah, very true. But, I think we _can_ at least provide the following guarantees (among others): 1. addresses don't go backwards 2. If there is something at a given vaddr during the entirety of the life of the smaps walk, we will produce some output for it. > So in other words isn't this fixing a bug by introducing a slightly > different one while we are not really guaranteeing anything strong here? Well, the (original) bug here _is_ pretty crummy. It's not printing a VMA, and that VMA was never touched. It's just collateral damage from the previous guy who got destroyed. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>