resending as it included html and got blocked from the list. On 1/25/2018 7:21 PM, Arend Van Spriel wrote:
Op 24 jan. 2018 11:46 schreef "Johannes Berg" <johannes@xxxxxxxxxxxxxxxx <mailto:johannes@xxxxxxxxxxxxxxxx>>: > > On Wed, 2018-01-24 at 10:39 +0100, Benjamin Beichler wrote: > > > sorry for introducing that error, but I'm a bit confused by the > > workqueue documentation. > > My assumption was, that deleting hwsim radios is reclaiming memory, and > > since this queue does nothing else it would save/necessary to set this flag. > > > > Maybe a hint in the documentation, that a work item on a WQ_MEM_RECLAIM > > queue must not call flush of an !WQ_MEM_RECLAIM queue would be nice. > > Maybe it's kind of obvious, but there is also a reminder not to forget > > that flag, if a queue may have work items that reclaim memory > > Yeah, honestly, I'm not really sure either. Clearly we can't set it, > but other drivers also set it... That triggered something in my memory. So indeed we use it in brcmfmac as well. We used create_singlethread_workqueue(), but I wanted to avoid snprintf and specify the name format so switched to using alloc_ordered_workqueue() keeping WQ_MEM_RECLAIM as per the macro definition.
#define create_singlethread_workqueue(name) \ alloc_ordered_workqueue("%s", __WQ_LEGACY | WQ_MEM_RECLAIM, name)
Don't recall why I dropped the __WQ_LEGACY flag though. Regards, Arend > I don't think it was *intended* for when you're freeing memory, since I > think reclaiming is what happens when you write out dirty buffers to > disk etc. > > johannes