All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: T S <thileepan_@hotmail.com>
Cc: rthelen@netapp.com, Xen-devel@lists.xensource.com,
	ewan@xensource.com, edwin.zhai@intel.com
Subject: Re: Detecting deadlocks with hypervisor..
Date: Fri, 07 Apr 2006 12:41:20 -0500	[thread overview]
Message-ID: <4436A440.90704@us.ibm.com> (raw)
In-Reply-To: <BAY108-F4E6955F5CB48CF58AB23CF6C90@phx.gbl>

T S wrote:
>> From: Anthony Liguori <aliguori@us.ibm.com>
>> To: T S <thileepan_@hotmail.com>
>> CC: xen-devel@lists.xensource.com
>> Subject: Re: [Xen-devel] Detecting deadlocks with hypervisor..
>> Date: Fri, 24 Mar 2006 13:24:46 -0600
>>
>> T S wrote:
>>> This may sound a silly question (pardon me because i am relatively 
>>> new to linux kernel) .. will it be possible to continue running 
>>> reboot.c (or for that matter any kernel thread) when the kernel is 
>>> deadlocked ? In Linux, is the kernel a single process or a bunch of 
>>> parallelly executing entities? If later, then during a kernel 
>>> deadlock (eg: by loading a faulty module that disables interrupts 
>>> and do something silly) there can still be some other 
>>> processes/threads run, right?
>>
>> Sorry for not making this more clear previously. You cannot restore a 
>> dead-locked domain if a normal xm save doesn't work. One thing that 
>> makes Xen unique is that guests actually are aware of what physical 
>> pages are assigned to them. When one does a save/restore, the guest 
>> has to canonicalize all of it's internal references to physical 
>> pages. When it's restored, it then remaps it's newly assigned 
>> physical pages to all the old places where it needed to know about 
>> them for some reason or another.
>
> We took a look at the xc_linux_save() function ... and what we see is 
> that
> the canonicalize action is actually done by the Dom-0 (and not by the 
> Dom-U);

Take a look at linux-2.6-sparse/drivers/core/reboot.c:__do_suspend(). 
Canonicalization is done both in Dom-0 and in the guest itself. Dom-0 
attempts to do as much of it as it can but as I've said before, it 
cannot do all of it.

> Also, given that Dom-0 can access the page tables and other structures 
> of the deadlocked guest,
> can one of you be able to tell me what changes I need to do to 
> xm_linux_save( ) (and other related functions) to save the state of 
> the deadlocked guest without doing any handshake with the guest OS ?

If you want to attempt to futz with the state of a guest while it's 
running without the guest cooperating, your best bet is to do as Keir 
suggested and pause the domain, make your changes, and then unpause.

Regards,

Anthony Liguori

>
> thanks!
> - T
>
>
>> If the guest isn't responsive when you do a save, then it will never 
>> canonicalize itself and there is no way to restore the domain.
>>
>> Regards,
>>
>> Anthony Liguori
>>
>>> thanks
>>> TS
>>>
>>>>
>>>> If a suspend completes correctly, Xend will see it (another watch 
>>>> will fire),
>>>> and xc_linux_save will be free to complete the save.
>>>>
>>>> > Also, does it seem viable to clone a copy of a deadlocked guest 
>>>> OS in the
>>>> > first place?
>>>>
>>>> If you have a byte-for-byte copy of a deadlocked guest, even if you 
>>>> could
>>>> suspend it, surely it will be deadlocked when it is resumed. How do 
>>>> you
>>>> intend to break the deadlock, and how is it easier to do that from 
>>>> outside
>>>> than it is to perform deadlock detection in the guest?
>>>>
>>>> Ewan.
>>>>
>>>>
>>>> _______________________________________________
>>>> Xen-devel mailing list
>>>> Xen-devel@lists.xensource.com
>>>> http://lists.xensource.com/xen-devel
>>>
>>> _________________________________________________________________
>>> Express yourself instantly with MSN Messenger! Download today - it's 
>>> FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>>>
>>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@lists.xensource.com
>>> http://lists.xensource.com/xen-devel
>>
>
> _________________________________________________________________
> Don’t just search. Find. Check out the new MSN Search! 
> http://search.msn.click-url.com/go/onm00200636ave/direct/01/
>

  parent reply	other threads:[~2006-04-07 17:41 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-19  2:14 Detecting deadlocks with hypervisor Thileepan Subramaniam
2006-03-19  6:37 ` Randy Thelen
2006-03-19 10:16 ` Edwin Zhai
2006-03-19 13:17 ` Ewan Mellor
2006-03-24 18:57   ` T S
2006-03-24 19:04   ` T S
2006-03-24 19:24     ` Anthony Liguori
2006-03-24 20:30       ` T S
2006-04-07 17:11       ` T S
2006-04-07 17:22         ` Keir Fraser
2006-04-07 17:45           ` Anthony Liguori
2006-04-07 17:41         ` Anthony Liguori [this message]
2006-04-08  1:47           ` T S
2006-04-08 14:38             ` Anthony Liguori
2006-03-19 16:30 ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4436A440.90704@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --cc=Xen-devel@lists.xensource.com \
    --cc=edwin.zhai@intel.com \
    --cc=ewan@xensource.com \
    --cc=rthelen@netapp.com \
    --cc=thileepan_@hotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.