Re: [PATCH 3/4] Drivers: hv: balloon: get rid on ol_waitevent

From: Vitaly Kuznetsov
Date: Thu Aug 11 2016 - 05:18:22 EST


"Alex Ng (LIS)" <alexng@xxxxxxxxxxxxx> writes:

>> -----Original Message-----
>> From: Vitaly Kuznetsov [mailto:vkuznets@xxxxxxxxxx]
>> Sent: Friday, August 5, 2016 3:49 AM
>> To: devel@xxxxxxxxxxxxxxxxxxxxxx
>> Cc: linux-kernel@xxxxxxxxxxxxxxx; Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>; KY
>> Srinivasan <kys@xxxxxxxxxxxxx>; Alex Ng (LIS) <alexng@xxxxxxxxxxxxx>
>> Subject: [PATCH 3/4] Drivers: hv: balloon: get rid on ol_waitevent
>>
>> With the recently introduced in-kernel memory onlining
>> (MEMORY_HOTPLUG_DEFAULT_ONLINE) these it no point in waiting for pages
>> to come online in the driver and in case the feature is disabled the 5
>> second wait won't help. Get rid of the waiting.
>>
>
> Continuing our internal discussion here. Here's the context.
>
>> > Is it necessary to remove the ol_waitevent in "Drivers: hv: balloon: get rid
>> > on ol_waitevent"? If we respond to the host too quickly, then the next
>> > hot-add request may not see the new pages come online and could fail to
>> > alloc memory as seen in the call trace.
>> >
>> > Thoughts?
>>
>> This should not be an issue with CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE: we
>> online pages when we add them (add_memory()) so when we reply to the host
>> these pages are already online. But in case the onlining is done by an
>> external tool (e.g. udev) this wait helps (not always, as if someone eats
>> all memory before the next add_memory call we're still in trouble).
>
> MEMORY_HOTPLUG_DEFAULT_ONLINE is disabled in Kconfig by default.
> Would it make sense to keep the wait and only #ifdef it out when CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is set?

I have a better idea. We can check 'memhp_auto_online' value to see the
current status and don't wait if it is 'true'. Will do v2.

--
Vitaly