All of lore.kernel.org
 help / color / mirror / Atom feed
* Balloon driver bug in increase_reservation
@ 2013-09-02 14:43 Wei Liu
  2013-09-02 14:48 ` Ian Campbell
  0 siblings, 1 reply; 15+ messages in thread
From: Wei Liu @ 2013-09-02 14:43 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: wei.liu2, david.vrabel, xen-devel

Hi, Stefano

I found another bug in the balloon scratch page code. As I didn't follow
the discussion on scratch page so I cannot propose a proper fix at the
moment.

The problem is that in balloon.c:increase_reservation, when a ballooned
page is resued, it can have a valid P2M entry pointing to the scratch,
hitting the BUG_ON

   BUG_ON(!xen_feature(XENFEAT_auto_translated_physmap) &&
          phys_to_machine_mapping_valid(pfn));

As balloon worker might run by a CPU other then the one that returns the
page, checking pfn_to_mfn(pfn) == local_cpu_scratch_page_mfn wouldn't
work.  Checking pfn_to_mfn(pfn) belongs to the set of all scratch page
mfns is not desirable.

My thoughts so far:
 1. remove that BUG_ON (looks like a wrong fix though)
 2. make balloon scratch page global

Other thoughts?

Wei.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2013-09-04 16:47 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-02 14:43 Balloon driver bug in increase_reservation Wei Liu
2013-09-02 14:48 ` Ian Campbell
2013-09-02 15:04   ` Wei Liu
2013-09-02 15:07     ` David Vrabel
2013-09-02 15:09     ` Ian Campbell
2013-09-02 15:13       ` Wei Liu
2013-09-02 15:31         ` Ian Campbell
2013-09-04 13:15           ` Stefano Stabellini
2013-09-04 13:20             ` Wei Liu
2013-09-04 13:31               ` Stefano Stabellini
2013-09-04 16:30                 ` Wei Liu
2013-09-04 15:14               ` Konrad Rzeszutek Wilk
2013-09-04 15:42                 ` Wei Liu
2013-09-04 16:35                   ` Konrad Rzeszutek Wilk
2013-09-04 16:47                     ` Wei Liu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.