Hi Mike. On Sun, Dec 18, 2016 at 03:33:59PM -0800, Mike Kravetz wrote: > On 12/16/2016 11:34 PM, Sam Ravnborg wrote: > > Hi Mike. > > > > On Fri, Dec 16, 2016 at 10:35:25AM -0800, Mike Kravetz wrote: > >> Add new fields to the mm_context structure to support shared context. > >> Instead of a simple context ID, add a pointer to a structure with a > >> reference count. This is needed as multiple tasks will share the > >> context ID. > > > > What are the benefits with the shared_mmu_ctx struct? > > It does not save any space in mm_context_t, and the CPU only > > supports one extra context. > > So it looks like over-engineering with all the extra administration > > required to handle it with refcount, poitners etc. > > > > what do I miss? > > Multiple tasks will share this same context ID. The first task to need > a new shared context will allocate the structure, increment the ref count > and point to it. As other tasks join the sharing, they will increment > the ref count and point to the same structure. Similarly, when tasks > no longer use the shared context ID, they will decrement the reference > count. > > The reference count is important so that we will know when the last > reference to the shared context ID is dropped. When the last reference > is dropped, then the ID can be recycled/given back to the global pool > of context IDs. > > This seemed to be the most straight forward way to implement this. This nice explanation clarified it - thanks. Could you try to include this info in the description of the struct - so it is obvious what the intention with the reference counter is. Sam -- 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>