• Vitaly Kuznetsov's avatar
    Drivers: hv: hv_balloon: do not online pages in offline blocks · d6cbd2c3
    Vitaly Kuznetsov authored
    Currently we add memory in 128Mb blocks but the request from host can be
    aligned differently. In such case we add a partially backed block and
    when this block goes online we skip onlining pages which are not backed
    (hv_online_page() callback serves this purpose). When we receive next
    request for the same host add region we online pages which were not backed
    before with hv_bring_pgs_online(). However, we don't check if the the block
    in question was onlined and online this tail unconditionally. This is bad as
    we avoid all online_pages() logic: these pages are not accounted, we don't
    send notifications (and hv_balloon is not the only receiver of them),...
    And, first of all, nobody asked as to online these pages. Solve the issue by
    checking if the last previously backed page was onlined and onlining the tail
    only in case it was.
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    d6cbd2c3
hv_balloon.c 38.8 KB