All of lore.kernel.org
 help / color / mirror / Atom feed
* RE: Unstableness in grant table block drivers
@ 2005-04-14  1:16 Ian Pratt
  2005-04-14  1:43 ` Anthony Liguori
  0 siblings, 1 reply; 42+ messages in thread
From: Ian Pratt @ 2005-04-14  1:16 UTC (permalink / raw)
  To: Anthony Liguori, xen-devel

> We've experienced a lot of problems in the new grant 
> table-based block drivers.  It's exposing itself in a number 
> of ways.  I've seen it stop working after working for a bit, 
> sometimes XenU stops half-way through boot, and on one system 
> init panics because it can't find a root filesystem.

OK, that's news to us - we haven't seen any problems.

It's been tested with dd's and kernel builds, and wasn't expected to be
a particularly dangerous change.

How you confirmed that disabling the option fixes your problems? Can you
give a simple recipe to provoke problems?

> I know the last week's been really busy, but in the future, 
> it would be nice if a big destabilizing change like this 
> could get announced on xen-devel so we could be on the look 
> out for these sort of bugs.

It doesn't seem to be destablizing, at least for us. Possibly there's
been some feature interaction with later checkins. 

Anyone using the unstable tree should be reading the changelog
closely...

Ian

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

* Unstableness in grant table block drivers
@ 2005-04-14  1:18 ` Anthony Liguori
  2005-04-14  1:20   ` Steven Hand
  0 siblings, 1 reply; 42+ messages in thread
From: Anthony Liguori @ 2005-04-14  1:18 UTC (permalink / raw)
  To: xen-devel

We've experienced a lot of problems in the new grant table-based block
drivers.  It's exposing itself in a number of ways.  I've seen it stop
working after working for a bit, sometimes XenU stops half-way through
boot, and on one system init panics because it can't find a root
filesystem.

Grant table block drivers are now the default config option in
xen-unstable even though it's marked as experimental.  Perhaps it should
not be default until it gets a bit more stable?

I know the last week's been really busy, but in the future, it would be
nice if a big destabilizing change like this could get announced on
xen-devel so we could be on the look out for these sort of bugs.

Thanks,
-- 
Anthony Liguori
Linux Technology Center (LTC) - IBM Austin
E-mail: aliguori@us.ibm.com
Phone: (512) 838-1208

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

* Re: Unstableness in grant table block drivers
  2005-04-14  1:18 ` Anthony Liguori
@ 2005-04-14  1:20   ` Steven Hand
  2005-04-14  1:46     ` Anthony Liguori
  2005-04-14  1:53     ` Kip Macy
  0 siblings, 2 replies; 42+ messages in thread
From: Steven Hand @ 2005-04-14  1:20 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: xen-devel, Steven.Hand


>We've experienced a lot of problems in the new grant table-based block
>drivers.  It's exposing itself in a number of ways.  I've seen it stop
>working after working for a bit, sometimes XenU stops half-way through
>boot, and on one system init panics because it can't find a root
>filesystem.

Have you made any progress in further identifying or narrowing down 
these bugs? Detailed bug reports or, better, patches, are always more
useful than general reports of issues. 

>Grant table block drivers are now the default config option in
>xen-unstable even though it's marked as experimental.  Perhaps it should
>not be default until it gets a bit more stable?

We've not seen any bugs ourselves but obviously if it's biting you 
regularly then may be worth while disabling in your config. I'm 
loathe to disable it by default in the general config since this 
won't help us uncover and fix whatever bugs are present. 

>I know the last week's been really busy, but in the future, it would be
>nice if a big destabilizing change like this could get announced on
>xen-devel so we could be on the look out for these sort of bugs.

Sure, good point (though as mentioned above, we hadn't seen any 
problems ourselves -- we strongly appreciate the community effort
in helping us ensure new changes work on a broad range of configs 
and usage scenarios). 

cheers,

S.

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

* Re: Unstableness in grant table block drivers
  2005-04-14  1:16 Ian Pratt
@ 2005-04-14  1:43 ` Anthony Liguori
  2005-04-14  2:04   ` Christopher Clark
  0 siblings, 1 reply; 42+ messages in thread
From: Anthony Liguori @ 2005-04-14  1:43 UTC (permalink / raw)
  To: Ian Pratt; +Cc: xen-devel

Ian Pratt wrote:

>OK, that's news to us - we haven't seen any problems.
>
>It's been tested with dd's and kernel builds, and wasn't expected to be
>a particularly dangerous change.
>
>How you confirmed that disabling the option fixes your problems? Can you
>give a simple recipe to provoke problems?
>
We've had three different systems lose the ability to start domUs.  
Disabling VBD grant tables fixed the problem.  The best reproducable 
example we have is default config on a domU from today's xen-unstable 
snapshot.  /dev/console is not accessible and no valid root is found.

In my own case, it was working fairly well and then it just stopped 
working.  It would die mid-way through boot.  Again, disabling VBD 
grant-tables fixed the problem.  I'm going to look into the problem this 
evening and see if I can get you guys a more reproducable scenario.

>It doesn't seem to be destablizing, at least for us. Possibly there's
>been some feature interaction with later checkins. 
>  
>
Possibly.

>Anyone using the unstable tree should be reading the changelog
>closely...
>  
>
I agree.  I do, but I don't think a lot of people do.  I'm not trying to 
give you guys more work to do :-)  Just a quick note to xen-devel would 
suffice (if you've got an extra second).

Thanks Ian,

Regards,
Anthony Liguori

>Ian
>
>  
>

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

* Re: Unstableness in grant table block drivers
  2005-04-14  1:20   ` Steven Hand
@ 2005-04-14  1:46     ` Anthony Liguori
  2005-04-14  1:53     ` Kip Macy
  1 sibling, 0 replies; 42+ messages in thread
From: Anthony Liguori @ 2005-04-14  1:46 UTC (permalink / raw)
  To: Steven Hand; +Cc: xen-devel

Steven Hand wrote:

>Have you made any progress in further identifying or narrowing down 
>these bugs? Detailed bug reports or, better, patches, are always more
>useful than general reports of issues. 
>  
>
This is where having a bugzilla would really help out.  At this stage, I 
don't know that much but enough that I could enter something in 
bugzilla.  As I learn more, we could add more detail until there was 
enough that someone (or I) could actually fix it.

>We've not seen any bugs ourselves but obviously if it's biting you 
>regularly then may be worth while disabling in your config. I'm 
>loathe to disable it by default in the general config since this 
>won't help us uncover and fix whatever bugs are present. 
>  
>
That's why I suggested just sending a note to the list.  Bugs need to be 
found and that's what xen-unstable should be for.  I'm happy to leave it 
enabled by default but wanted to let the rest of the list know that if 
they run into stability problems that might be a good place to start 
looking.

Regards,
Anthony Liguori

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

* Re: Unstableness in grant table block drivers
  2005-04-14  1:20   ` Steven Hand
  2005-04-14  1:46     ` Anthony Liguori
@ 2005-04-14  1:53     ` Kip Macy
  2005-04-14  2:27       ` Anthony Liguori
  1 sibling, 1 reply; 42+ messages in thread
From: Kip Macy @ 2005-04-14  1:53 UTC (permalink / raw)
  To: Steven Hand; +Cc: xen-devel

> Sure, good point (though as mentioned above, we hadn't seen any
> problems ourselves -- we strongly appreciate the community effort
> in helping us ensure new changes work on a broad range of configs
> and usage scenarios).

I think it is safe to say that the blkback/blkfront still have some
serious bugs to be fixed even in the absences of grant tables.
Exporting more than a couple of block devices to VMs will eventually
cause domUs to stop receiving block I/O. I hope to have time to create
a  scenario that works quicktly and with a sufficiently small
configuration that you'll be able to reproduce it there. To date I've
only tried it with a fairly large number of LUNs.

Developers using xen here periodically have to re-boot their machines
as a result. They can't reproduce it consistently (thankfully), but
they're typically only using 7-10 VBDs.


                   -Kip

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

* Re: Unstableness in grant table block drivers
  2005-04-14  1:43 ` Anthony Liguori
@ 2005-04-14  2:04   ` Christopher Clark
  2005-04-14  2:17     ` Kip Macy
                       ` (2 more replies)
  0 siblings, 3 replies; 42+ messages in thread
From: Christopher Clark @ 2005-04-14  2:04 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: xen-devel

Hello Anthony

First off, hands up: this was my code and I just didn't get around to
sending the mail to the list as I had enough to deal with relocating
from the UK to the US last week. The code was, however, tested under
load and working fine, and I did consider it to be ready for wider
testing in unstable.

The machines you can't get to start domUs, and symptom of not finding
the root filesystem is exactly what you'd see if your dom0 and domU
configs don't match; either both or neither need to be using grant
tables for transport. Your other issues will need more investigation,
and a reproducable scenario would be extremely helpful indeed.

Regards,

Christopher


On 4/13/05, Anthony Liguori <aliguori@us.ibm.com> wrote:
> Ian Pratt wrote:
> 
> >OK, that's news to us - we haven't seen any problems.
> >
> >It's been tested with dd's and kernel builds, and wasn't expected to be
> >a particularly dangerous change.
> >
> >How you confirmed that disabling the option fixes your problems? Can you
> >give a simple recipe to provoke problems?
> >
> We've had three different systems lose the ability to start domUs.
> Disabling VBD grant tables fixed the problem.  The best reproducable
> example we have is default config on a domU from today's xen-unstable
> snapshot.  /dev/console is not accessible and no valid root is found.
> 
> In my own case, it was working fairly well and then it just stopped
> working.  It would die mid-way through boot.  Again, disabling VBD
> grant-tables fixed the problem.  I'm going to look into the problem this
> evening and see if I can get you guys a more reproducable scenario.
> 
> >It doesn't seem to be destablizing, at least for us. Possibly there's
> >been some feature interaction with later checkins.
> >
> >
> Possibly.
> 
> >Anyone using the unstable tree should be reading the changelog
> >closely...
> >
> >
> I agree.  I do, but I don't think a lot of people do.  I'm not trying to
> give you guys more work to do :-)  Just a quick note to xen-devel would
> suffice (if you've got an extra second).
> 
> Thanks Ian,
> 
> Regards,
> Anthony Liguori
> 
> >Ian
> >
> >
> >
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>

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

* Re: Unstableness in grant table block drivers
  2005-04-14  2:04   ` Christopher Clark
@ 2005-04-14  2:17     ` Kip Macy
  2005-04-14  2:25     ` Anthony Liguori
  2005-04-14 15:00     ` Ryan Harper
  2 siblings, 0 replies; 42+ messages in thread
From: Kip Macy @ 2005-04-14  2:17 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

So domUs have to have grant table support enabled if dom0 does?

        -Kip

On 4/13/05, Christopher Clark <christopher.w.clark@gmail.com> wrote:
> Hello Anthony
> 
> First off, hands up: this was my code and I just didn't get around to
> sending the mail to the list as I had enough to deal with relocating
> from the UK to the US last week. The code was, however, tested under
> load and working fine, and I did consider it to be ready for wider
> testing in unstable.
> 
> The machines you can't get to start domUs, and symptom of not finding
> the root filesystem is exactly what you'd see if your dom0 and domU
> configs don't match; either both or neither need to be using grant
> tables for transport. Your other issues will need more investigation,
> and a reproducable scenario would be extremely helpful indeed.
> 
> Regards,
> 
> Christopher
> 
> 
> On 4/13/05, Anthony Liguori <aliguori@us.ibm.com> wrote:
> > Ian Pratt wrote:
> >
> > >OK, that's news to us - we haven't seen any problems.
> > >
> > >It's been tested with dd's and kernel builds, and wasn't expected to be
> > >a particularly dangerous change.
> > >
> > >How you confirmed that disabling the option fixes your problems? Can you
> > >give a simple recipe to provoke problems?
> > >
> > We've had three different systems lose the ability to start domUs.
> > Disabling VBD grant tables fixed the problem.  The best reproducable
> > example we have is default config on a domU from today's xen-unstable
> > snapshot.  /dev/console is not accessible and no valid root is found.
> >
> > In my own case, it was working fairly well and then it just stopped
> > working.  It would die mid-way through boot.  Again, disabling VBD
> > grant-tables fixed the problem.  I'm going to look into the problem this
> > evening and see if I can get you guys a more reproducable scenario.
> >
> > >It doesn't seem to be destablizing, at least for us. Possibly there's
> > >been some feature interaction with later checkins.
> > >
> > >
> > Possibly.
> >
> > >Anyone using the unstable tree should be reading the changelog
> > >closely...
> > >
> > >
> > I agree.  I do, but I don't think a lot of people do.  I'm not trying to
> > give you guys more work to do :-)  Just a quick note to xen-devel would
> > suffice (if you've got an extra second).
> >
> > Thanks Ian,
> >
> > Regards,
> > Anthony Liguori
> >
> > >Ian
> > >
> > >
> > >
> >
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.xensource.com
> > http://lists.xensource.com/xen-devel
> >
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>

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

* Re: Unstableness in grant table block drivers
  2005-04-14  2:04   ` Christopher Clark
  2005-04-14  2:17     ` Kip Macy
@ 2005-04-14  2:25     ` Anthony Liguori
  2005-04-14 15:00     ` Ryan Harper
  2 siblings, 0 replies; 42+ messages in thread
From: Anthony Liguori @ 2005-04-14  2:25 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

Christopher Clark wrote:

>Hello Anthony
>
>First off, hands up: this was my code and I just didn't get around to
>sending the mail to the list as I had enough to deal with relocating
>from the UK to the US last week. The code was, however, tested under
>load and working fine, and I did consider it to be ready for wider
>testing in unstable.
>  
>
Hi Christopher,

My note was more of a suggestion for the future than a complaint.  You 
guys in Cambridge move very quickly and it's hard for some of us outside 
to keep up :-)  You guys just keep churning out cool stuff.

>The machines you can't get to start domUs, and symptom of not finding
>the root filesystem is exactly what you'd see if your dom0 and domU
>configs don't match; either both or neither need to be using grant
>tables for transport. Your other issues will need more investigation,
>and a reproducable scenario would be extremely helpful indeed.
>  
>
Actually, this seems like it might be a common thread between all of our 
scenarios.  I'm using (and I assume others) a standard dom0 config file 
that has all of my hardware enabled while I just use the default config 
file for domU.

I'll try to confirm this tomorrow with the other people that were 
experiencing problems.  Perhaps I'll run a copy of fsstress too and let 
you guys know the results.

Regards,
Anthony Liguori

>Regards,
>
>Christopher
>
>
>On 4/13/05, Anthony Liguori <aliguori@us.ibm.com> wrote:
>  
>
>>Ian Pratt wrote:
>>
>>    
>>
>>>OK, that's news to us - we haven't seen any problems.
>>>
>>>It's been tested with dd's and kernel builds, and wasn't expected to be
>>>a particularly dangerous change.
>>>
>>>How you confirmed that disabling the option fixes your problems? Can you
>>>give a simple recipe to provoke problems?
>>>
>>>      
>>>
>>We've had three different systems lose the ability to start domUs.
>>Disabling VBD grant tables fixed the problem.  The best reproducable
>>example we have is default config on a domU from today's xen-unstable
>>snapshot.  /dev/console is not accessible and no valid root is found.
>>
>>In my own case, it was working fairly well and then it just stopped
>>working.  It would die mid-way through boot.  Again, disabling VBD
>>grant-tables fixed the problem.  I'm going to look into the problem this
>>evening and see if I can get you guys a more reproducable scenario.
>>
>>    
>>
>>>It doesn't seem to be destablizing, at least for us. Possibly there's
>>>been some feature interaction with later checkins.
>>>
>>>
>>>      
>>>
>>Possibly.
>>
>>    
>>
>>>Anyone using the unstable tree should be reading the changelog
>>>closely...
>>>
>>>
>>>      
>>>
>>I agree.  I do, but I don't think a lot of people do.  I'm not trying to
>>give you guys more work to do :-)  Just a quick note to xen-devel would
>>suffice (if you've got an extra second).
>>
>>Thanks Ian,
>>
>>Regards,
>>Anthony Liguori
>>
>>    
>>
>>>Ian
>>>
>>>
>>>
>>>      
>>>
>>_______________________________________________
>>Xen-devel mailing list
>>Xen-devel@lists.xensource.com
>>http://lists.xensource.com/xen-devel
>>
>>    
>>
>
>  
>

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

* Re: Unstableness in grant table block drivers
  2005-04-14  1:53     ` Kip Macy
@ 2005-04-14  2:27       ` Anthony Liguori
  2005-04-14  2:55         ` Kip Macy
  0 siblings, 1 reply; 42+ messages in thread
From: Anthony Liguori @ 2005-04-14  2:27 UTC (permalink / raw)
  To: Kip Macy; +Cc: xen-devel, Steven Hand

Kip Macy wrote:

>I think it is safe to say that the blkback/blkfront still have some
>serious bugs to be fixed even in the absences of grant tables.
>  
>
How many is a lot of VBDs?  I've done quite a bit of testing of the 
devices (with Xend and with VM-Tools) and I've found the block drivers 
to be very reliable.  I've not gone much higher than 3 or 4 VBDs for 
each domain though.

Regards,
Anthony Liguoris

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

* Re: Unstableness in grant table block drivers
  2005-04-14  2:27       ` Anthony Liguori
@ 2005-04-14  2:55         ` Kip Macy
  0 siblings, 0 replies; 42+ messages in thread
From: Kip Macy @ 2005-04-14  2:55 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: xen-devel, Steven Hand

If I do

3 VMs x 40 iSCSI LUNs/VM x foreach (lun) dd if=/dev/zero of=/dev/xbd<n> bs=64k

iscsi ops will stop going across the wire in  2 - 3 minutes. Access to
the LUNs from DOM0 still works. I haven't had a chance to try a
smaller configuration. This is all scripted so it only takes a minute
to set up, but I'm busy trying to get FreeBSD to run (and not have
DOM0 lockup) on a recent -unstable.

      -Kip



On 4/13/05, Anthony Liguori <aliguori@us.ibm.com> wrote:
> Kip Macy wrote:
> 
> >I think it is safe to say that the blkback/blkfront still have some
> >serious bugs to be fixed even in the absences of grant tables.
> >
> >
> How many is a lot of VBDs?  I've done quite a bit of testing of the
> devices (with Xend and with VM-Tools) and I've found the block drivers
> to be very reliable.  I've not gone much higher than 3 or 4 VBDs for
> each domain though.
> 
> Regards,
> Anthony Liguoris
>

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

* RE: Unstableness in grant table block drivers
       [not found] <E1DLu58-0005lx-KR@host-192-168-0-1-bcn-london>
@ 2005-04-14 10:17 ` Ge van Geldorp
  0 siblings, 0 replies; 42+ messages in thread
From: Ge van Geldorp @ 2005-04-14 10:17 UTC (permalink / raw)
  To: xen-devel; +Cc: christopher.w.clark

> From: Christopher Clark <christopher.w.clark@gmail.com>
> 
> The machines you can't get to start domUs, and symptom of not 
> finding the root filesystem is exactly what you'd see if your 
> dom0 and domU configs don't match; either both or neither 
> need to be using grant tables for transport.

Is CONFIG_XEN_BLKDEV_GRANT going to be a permanent thing or will the "!
defined(CONFIG_XEN_BLKDEV_GRANT)" code be removed at some point? IMHO,
having binary incompatibilities like this between dom0 and domU is going to
be a pain.

Ge van Geldorp.

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

* RE: Unstableness in grant table block drivers
@ 2005-04-14 10:24 Ian Pratt
  2005-04-14 10:34 ` Ge van Geldorp
  0 siblings, 1 reply; 42+ messages in thread
From: Ian Pratt @ 2005-04-14 10:24 UTC (permalink / raw)
  To: Ge van Geldorp, xen-devel; +Cc: christopher.w.clark

 
> Is CONFIG_XEN_BLKDEV_GRANT going to be a permanent thing or 
> will the "!
> defined(CONFIG_XEN_BLKDEV_GRANT)" code be removed at some 
> point? 

The config option will probably be removed at some point. It's just
there to aid debugging in case someone reported block dev problems.

> IMHO, having binary incompatibilities like this 
> between dom0 and domU is going to be a pain.

In the *unstable* series you really shouldn't be relying on
compatibility between different versions of the tools, xen, or the
kernels. You should always install a complete set of binaries. In the
unstable series we reserve the right to change interfaces, and
frequently do. 

Best,
Ian

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

* RE: Unstableness in grant table block drivers
  2005-04-14 10:24 Ian Pratt
@ 2005-04-14 10:34 ` Ge van Geldorp
  0 siblings, 0 replies; 42+ messages in thread
From: Ge van Geldorp @ 2005-04-14 10:34 UTC (permalink / raw)
  To: 'Ian Pratt', xen-devel; +Cc: christopher.w.clark

> From: Ian Pratt [mailto:m+Ian.Pratt@cl.cam.ac.uk] 
>  
> > Is CONFIG_XEN_BLKDEV_GRANT going to be a permanent thing or
> > will the "! defined(CONFIG_XEN_BLKDEV_GRANT)" code be
> > removed at some point? 
> 
> The config option will probably be removed at some point. 
> It's just there to aid debugging in case someone reported 
> block dev problems.

Ok, cool.

> In the unstable series we reserve the right to 
> change interfaces, and frequently do. 

Yeah, I noticed <g>. That's cool too, I was just hoping that the config
option would be gone by the time -unstable turns into -testing, and it seems
that will probably be the case.

Ge van Geldorp.

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

* Re: Unstableness in grant table block drivers
  2005-04-14  2:04   ` Christopher Clark
  2005-04-14  2:17     ` Kip Macy
  2005-04-14  2:25     ` Anthony Liguori
@ 2005-04-14 15:00     ` Ryan Harper
  2005-04-14 16:34       ` Christopher Clark
  2 siblings, 1 reply; 42+ messages in thread
From: Ryan Harper @ 2005-04-14 15:00 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

* Christopher Clark <christopher.w.clark@gmail.com> [2005-04-13 21:04]:
Hi,

> The machines you can't get to start domUs, and symptom of not finding
> the root filesystem is exactly what you'd see if your dom0 and domU
> configs don't match; either both or neither need to be using grant
> tables for transport. Your other issues will need more investigation,

I build xen-unstable nightly and install it completely to my test box.
My configs between dom0 and domU are always identicle except for
priviledged domain.

> and a reproducable scenario would be extremely helpful indeed.

My scenario is building the default configs either as UP or with adding
in CONFIG_SMP.  The resule is always, dom0 will boot, domU will not.
domU fails with not finding /dev/console and no root device.

I use loopback device mounts exported as /dev/sda1.

As soon as I turn off CONFIG_XEN_BLKDEV_GRANT in dom0/U configs,
the domU boots properly.

I build with debug=y and I can generate any sort of dump or information
you need to track this down.  Let me know what you need.

--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* Re: Unstableness in grant table block drivers
  2005-04-14 15:00     ` Ryan Harper
@ 2005-04-14 16:34       ` Christopher Clark
  2005-04-14 17:28         ` Ryan Harper
  0 siblings, 1 reply; 42+ messages in thread
From: Christopher Clark @ 2005-04-14 16:34 UTC (permalink / raw)
  To: Ryan Harper; +Cc: xen-devel

Kip:
Yes, domUs must use grant tables for block device access if dom0 does.
It's configuring the format of the shared rings between the front and back ends.

Ryan:
Are your issues with 2.4 or 2.6?
The least tested code is the 2.4 backend in dom0.
2.6 in dom0 should support both 2.4 and 2.6 front ends fine, though so
far I've been using partitions rather than exported loopback devices.

I'm aiming to have a working development environment by the end of the
day, and first order of business will be to reproduce these issues.

Christopher



On 4/14/05, Ryan Harper <ryanh@us.ibm.com> wrote:
> * Christopher Clark <christopher.w.clark@gmail.com> [2005-04-13 21:04]:
> Hi,
> 
> > The machines you can't get to start domUs, and symptom of not finding
> > the root filesystem is exactly what you'd see if your dom0 and domU
> > configs don't match; either both or neither need to be using grant
> > tables for transport. Your other issues will need more investigation,
> 
> I build xen-unstable nightly and install it completely to my test box.
> My configs between dom0 and domU are always identicle except for
> priviledged domain.
> 
> > and a reproducable scenario would be extremely helpful indeed.
> 
> My scenario is building the default configs either as UP or with adding
> in CONFIG_SMP.  The resule is always, dom0 will boot, domU will not.
> domU fails with not finding /dev/console and no root device.
> 
> I use loopback device mounts exported as /dev/sda1.
> 
> As soon as I turn off CONFIG_XEN_BLKDEV_GRANT in dom0/U configs,
> the domU boots properly.
> 
> I build with debug=y and I can generate any sort of dump or information
> you need to track this down.  Let me know what you need.
> 
> --
> Ryan Harper
> Software Engineer; Linux Technology Center
> IBM Corp., Austin, Tx
> (512) 838-9253   T/L: 678-9253
> ryanh@us.ibm.com
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>

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

* Re: Unstableness in grant table block drivers
  2005-04-14 16:34       ` Christopher Clark
@ 2005-04-14 17:28         ` Ryan Harper
  2005-04-15 18:45           ` Christopher Clark
  0 siblings, 1 reply; 42+ messages in thread
From: Ryan Harper @ 2005-04-14 17:28 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

* Christopher Clark <christopher.w.clark@gmail.com> [2005-04-14 11:35]:
> Ryan:
> Are your issues with 2.4 or 2.6?

I'm 2.6 all the way. 

--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* Re: Unstableness in grant table block drivers
  2005-04-14 17:28         ` Ryan Harper
@ 2005-04-15 18:45           ` Christopher Clark
  2005-04-15 21:14             ` Ryan Harper
  0 siblings, 1 reply; 42+ messages in thread
From: Christopher Clark @ 2005-04-15 18:45 UTC (permalink / raw)
  To: Ryan Harper; +Cc: xen-devel

Hi Ryan

OK, I've got a system I can work on now.
Could you please modify the GRANT_DEBUG and GRANT_DEBUG_VERBOSE to be
set to 1, at the top of xen/common/grant_table.c and then make a debug
build of xen.

The verbose option will slow any successful boot down to a crawl, so
you don't want to leave it on unnecessarily once things are working.

I'd like to see:
all the boot messages from xen and dom0
the same from your attempt to boot domU

If you have to option to test it on a uniprocessor box, please use
that as that would match what I'm using here.

thanks

Christopher


On 4/14/05, Ryan Harper <ryanh@us.ibm.com> wrote:
> * Christopher Clark <christopher.w.clark@gmail.com> [2005-04-14 11:35]:
> > Ryan:
> > Are your issues with 2.4 or 2.6?
> 
> I'm 2.6 all the way.
> 
> --
> Ryan Harper
> Software Engineer; Linux Technology Center
> IBM Corp., Austin, Tx
> (512) 838-9253   T/L: 678-9253
> ryanh@us.ibm.com
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>

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

* Re: Unstableness in grant table block drivers
  2005-04-15 18:45           ` Christopher Clark
@ 2005-04-15 21:14             ` Ryan Harper
  2005-04-15 21:32               ` Kip Macy
  0 siblings, 1 reply; 42+ messages in thread
From: Ryan Harper @ 2005-04-15 21:14 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

[-- Attachment #1: Type: text/plain, Size: 906 bytes --]

* Christopher Clark <christopher.w.clark@gmail.com> [2005-04-15 13:44]:
> Hi Ryan
> 
> OK, I've got a system I can work on now.
> Could you please modify the GRANT_DEBUG and GRANT_DEBUG_VERBOSE to be
> set to 1, at the top of xen/common/grant_table.c and then make a debug
> build of xen.
> 
> The verbose option will slow any successful boot down to a crawl, so
> you don't want to leave it on unnecessarily once things are working.
> 
> I'd like to see:
> all the boot messages from xen and dom0
> the same from your attempt to boot domU

Attached, both smp and non-smp.

> If you have to option to test it on a uniprocessor box, please use
> that as that would match what I'm using here.

I only have an SMP box setup right now, Ill repeat those dumps on a UP
box tomorrow.

--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

[-- Attachment #2: domU_grant_boot_smp.txt --]
[-- Type: text/plain, Size: 3041 bytes --]

Linux version 2.6.11-xenU-smp (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 SMP Fri Apr 15 15:53:04 CDT 2005
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000008000000 (usable)
128MB LOWMEM available.
DMI not present.
IRQ lockup detection disabled
Allocating PCI resources starting at 08000000 (gap: 08000000:f8000000)
Built 1 zonelists
Kernel command line:  root=/dev/sda1 ro profile=2
kernel profiling enabled (shift: 2)
Initializing CPU#0
PID hash table entries: 1024 (order: 10, 16384 bytes)
Xen reported: 866.321 MHz processor.
Using tsc for high-res timesource
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 125088k/131072k available (1642k kernel code, 5792k reserved, 441k data, 136k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
CPU0: Intel Pentium III (Coppermine) stepping 06
per-CPU timeslice cutoff: 731.68 usecs.
task migration cache decay timeout: 1 msecs.
Booting processor 1/1 eip c0100010
Initializing CPU#1
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU1: Intel Pentium III (Coppermine) stepping 06
Booting processor 2/2 eip c0100010
Initializing CPU#2
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU2: Intel Pentium III (Coppermine) stepping 06
Booting processor 3/3 eip c0100010
Initializing CPU#3
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU3: Intel Pentium III (Coppermine) stepping 06
Total of 4 processors activated (4371.23 BogoMIPS).
Brought up 4 CPUs
NET: Registered protocol family 16
xen_mem: Initialising balloon driver.
Grant table initialized
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Xen virtual console successfully installed as tty1
Event-channel device installed.
Blkif frontend is using grant tables.
xen_blk: Initialising virtual block device driver
xen_net: Initialising virtual ethernet driver.
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 8Kbytes
TCP established hash table entries: 8192 (order: 5, 131072 bytes)
TCP bind hash table entries: 8192 (order: 4, 98304 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
NET: Registered protocol family 1
NET: Registered protocol family 17
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 136k freed
Warning: unable to open an initial console.
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.

[-- Attachment #3: domU_grant_boot_up.txt --]
[-- Type: text/plain, Size: 2394 bytes --]

Linux version 2.6.11-xenU (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 Fri Apr 15 15:49:51 CDT 2005
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000008000000 (usable)
128MB LOWMEM available.
DMI not present.
IRQ lockup detection disabled
Allocating PCI resources starting at 08000000 (gap: 08000000:f8000000)
Built 1 zonelists
Kernel command line:  root=/dev/sda1 ro profile=2
kernel profiling enabled (shift: 2)
Initializing CPU#0
PID hash table entries: 1024 (order: 10, 16384 bytes)
Xen reported: 866.321 MHz processor.
Using tsc for high-res timesource
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 125376k/131072k available (1645k kernel code, 5504k reserved, 469k data, 108k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: Intel Pentium III (Coppermine) stepping 06
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
NET: Registered protocol family 16
xen_mem: Initialising balloon driver.
Grant table initialized
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Xen virtual console successfully installed as tty1
Event-channel device installed.
Blkif frontend is using grant tables.
xen_blk: Initialising virtual block device driver
xen_net: Initialising virtual ethernet driver.
NET: Registered protocol family 2
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
NET: Registered protocol family 1
NET: Registered protocol family 17
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 108k freed
Warning: unable to open an initial console.
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.

[-- Attachment #4: xen_blk_grant_debug_smp.out --]
[-- Type: text/plain, Size: 22041 bytes --]

 __  __            _____  ___         _                _ 
 \ \/ /___ _ __   |___ / / _ \     __| | _____   _____| |
  \  // _ \ '_ \    |_ \| | | |__ / _` |/ _ \ \ / / _ \ |
  /  \  __/ | | |  ___) | |_| |__| (_| |  __/\ V /  __/ |
 /_/\_\___|_| |_| |____(_)___/    \__,_|\___| \_/ \___|_|
                                                         
 http://www.cl.cam.ac.uk/netos/xen
 University of Cambridge Computer Laboratory

 Xen version 3.0-devel (rharper@localdomain) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) Fri Apr 15 15:35:13 CDT 2005
 Latest ChangeSet: information unavailable

(XEN) Physical RAM map:
(XEN)  0000000000000000 - 000000000009dc00 (usable)
(XEN)  000000000009dc00 - 00000000000a0000 (reserved)
(XEN)  00000000000e0000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 0000000037fed140 (usable)
(XEN)  0000000037fed140 - 0000000037ff0000 (ACPI data)
(XEN)  0000000037ff0000 - 0000000038000000 (reserved)
(XEN)  00000000fec00000 - 0000000100000000 (reserved)
(XEN) System RAM: 895MB (917032kB)
(XEN) Xen heap: 10MB (10740kB)
(XEN) CPU0: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) found SMP MP-table at 0009ddd0
(XEN) ACPI: RSDP (v000 IBM                                       ) @ 0x000fdfd0
(XEN) ACPI: RSDT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37feff80
(XEN) ACPI: FADT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37feff00
(XEN) ACPI: MADT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37fefe80
(XEN) ACPI: DSDT (v001 IBM    SERTOPAZ 0x00001000 MSFT 0x0100000b) @ 0x00000000
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x00] lapic_id[0x03] enabled)
(XEN) Processor #3 Pentium(tm) Pro APIC version 17
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) Processor #0 Pentium(tm) Pro APIC version 17
(XEN) Using ACPI for processor (LAPIC) configuration information
(XEN) Intel MultiProcessor Specification v1.4
(XEN)     Virtual Wire compatibility mode.
(XEN) OEM ID: IBM ENSW Product ID: xSeries 220  APIC at: 0xFEE00000
(XEN) I/O APIC #14 Version 17 at 0xFEC00000.
(XEN) I/O APIC #13 Version 17 at 0xFEC01000.
(XEN) Enabling APIC mode: Flat.	Using 2 I/O APICs
(XEN) Processors: 2
(XEN) Using scheduler: Borrowed Virtual Time (bvt)
(XEN) Initializing CPU#0
(XEN) Detected 866.321 MHz processor.
(XEN) CPU0: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) CPU0 booted
(XEN) enabled ExtINT on CPU#0
(XEN) ESR value before enabling vector: 00000000
(XEN) ESR value after enabling vector: 00000000
(XEN) Booting processor 1/0 eip 90000
(XEN) Initializing CPU#1
(XEN) masked ExtINT on CPU#1
(XEN) ESR value before enabling vector: 00000000
(XEN) ESR value after enabling vector: 00000000
(XEN) CPU1: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) CPU1 has booted.
(XEN) Total of 2 processors activated.
(XEN) ENABLING IO-APIC IRQs
(XEN) Setting 14 in the phys_id_present_map
(XEN) ...changing IO-APIC physical APIC ID to 14 ... ok.
(XEN) Setting 13 in the phys_id_present_map
(XEN) ...changing IO-APIC physical APIC ID to 13 ... ok.
(XEN) init IO_APIC IRQs
(XEN) vector_irq[49] = 1
(XEN) vector_irq[51] = 3
(XEN) vector_irq[59] = 4
(XEN) vector_irq[61] = 6
(XEN) vector_irq[69] = 7
(XEN) vector_irq[71] = 8
(XEN) vector_irq[79] = 10
(XEN) vector_irq[81] = 12
(XEN) vector_irq[89] = 13
(XEN) vector_irq[91] = 14
(XEN) vector_irq[99] = 27
(XEN) vector_irq[a1] = 28
(XEN) ..TIMER: vector=0x41 pin1=2 pin2=-1
(XEN) ..MP-BIOS bug: 8254 timer not connected to IO-APIC
(XEN) ...trying to set up timer (IRQ0) through the 8259A ...  failed.
(XEN) ...trying to set up timer as Virtual Wire IRQ... works.
(XEN) number of MP IRQ sources: 13.
(XEN) number of IO-APIC #14 registers: 16.
(XEN) number of IO-APIC #13 registers: 16.
(XEN) testing the IO APIC.......................
(XEN) 
(XEN) IO APIC #14......
(XEN) .... register #00: 0E000000
(XEN) .......    : physical APIC id: 0E
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 0E000000
(XEN) .......     : arbitration: 0E
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 003 03  0    0    0   0   0    1    1    49
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 003 03  0    0    0   0   0    1    1    51
(XEN)  04 003 03  0    0    0   0   0    1    1    59
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 003 03  0    0    0   0   0    1    1    61
(XEN)  07 003 03  0    0    0   0   0    1    1    69
(XEN)  08 003 03  0    0    0   0   0    1    1    71
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 003 03  1    1    0   1   0    1    1    79
(XEN)  0b 000 00  1    0    0   0   0    0    0    00
(XEN)  0c 003 03  0    0    0   0   0    1    1    81
(XEN)  0d 003 03  0    0    0   0   0    1    1    89
(XEN)  0e 003 03  0    0    0   0   0    1    1    91
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) 
(XEN) IO APIC #13......
(XEN) .... register #00: 0D000000
(XEN) .......    : physical APIC id: 0D
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 0D000000
(XEN) .......     : arbitration: 0D
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 000 00  1    0    0   0   0    0    0    00
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 000 00  1    0    0   0   0    0    0    00
(XEN)  04 0D7 07  1    0    0   0   0    1    2    75
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 0F6 06  1    0    0   0   0    0    2    08
(XEN)  07 0D3 03  1    0    0   0   0    0    2    EB
(XEN)  08 000 00  1    0    0   0   0    0    0    00
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 000 00  1    0    0   0   0    0    0    00
(XEN)  0b 003 03  1    1    0   1   0    1    1    99
(XEN)  0c 003 03  1    1    0   1   0    1    1    A1
(XEN)  0d 000 00  1    0    0   0   0    0    0    00
(XEN)  0e 000 00  1    0    0   0   0    0    0    00
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) IRQ to pin mappings:
(XEN) IRQ0 -> 0:2
(XEN) IRQ1 -> 0:1
(XEN) IRQ3 -> 0:3
(XEN) IRQ4 -> 0:4
(XEN) IRQ6 -> 0:6
(XEN) IRQ7 -> 0:7
(XEN) IRQ8 -> 0:8
(XEN) IRQ10 -> 0:10
(XEN) IRQ12 -> 0:12
(XEN) IRQ13 -> 0:13
(XEN) IRQ14 -> 0:14
(XEN) IRQ27 -> 1:11
(XEN) IRQ28 -> 1:12
(XEN) .................................... done.
(XEN) Using local APIC timer interrupts.
(XEN) Calibrating APIC timer for CPU0...
(XEN) ..... CPU speed is 866.2623 MHz.
(XEN) ..... Bus speed is 133.2710 MHz.
(XEN) ..... bus_scale = 0x0000887A
(XEN) checking TSC synchronization across CPUs: passed.
(XEN) Time init:
(XEN) .... System Time: 12880752ns
(XEN) .... cpu_freq:    00000000:33A3063C
(XEN) .... scale:       00000001:27808C52
(XEN) .... Wall Clock:  1113598834s 550000us
(XEN) PCI: PCI BIOS revision 2.10 entry at 0xfd5dc, last bus=1
(XEN) PCI: Using configuration type 1
(XEN) PCI: Probing PCI hardware
(XEN) PCI: Probing PCI hardware (bus 00)
(XEN) PCI: Discovered peer bus 01
(XEN) PCI->APIC IRQ transform: (B0,I2,P0) -> 27
(XEN) PCI->APIC IRQ transform: (B0,I15,P0) -> 10
(XEN) PCI->APIC IRQ transform: (B1,I3,P0) -> 28
(XEN) mtrr: v2.0 (20020519)
(XEN) (file=grant_table.c, line=1229) Grant table init
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Xen-ELF header found: 'GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0xC0000000,LOADER=generic'
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   10000000->20000000 (65536 pages to be allocated)
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: c0100000->c054c4a4
(XEN)  Init. ramdisk: c054d000->c054d000
(XEN)  Phys-Mach map: c054d000->c05cd000
(XEN)  Page tables:   c05cd000->c05d0000
(XEN)  Start info:    c05d0000->c05d1000
(XEN)  Boot stack:    c05d1000->c05d2000
(XEN)  TOTAL:         c0000000->c0800000
(XEN)  ENTRY ADDRESS: c0100000
(XEN) Scrubbing Free RAM: .........done.
(XEN) *** Serial input -> DOM0 (type 'CTRL-x' three times to switch input to Xen).
Linux version 2.6.11-xen0-smp (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 SMP Fri Apr 15 15:51:54 CDT 2005
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000020000000 (usable)
512MB LOWMEM available.
DMI 2.3 present.
IRQ lockup detection disabled
Allocating PCI resources starting at 20000000 (gap: 20000000:e0000000)
Built 1 zonelists
Kernel command line: root=/dev/sda2 ro console=tty0
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 65536 bytes)
Xen reported: 866.321 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 513408k/524288k available (2828k kernel code, 10688k reserved, 976k data, 348k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
CPU0: Intel Pentium III (Coppermine) stepping 06
per-CPU timeslice cutoff: 731.68 usecs.
task migration cache decay timeout: 1 msecs.
Booting processor 1/1 eip c0100010
Initializing CPU#1
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU1: Intel Pentium III (Coppermine) stepping 06
Total of 2 processors activated (3460.30 BogoMIPS).
Brought up 2 CPUs
NET: Registered protocol family 16
PCI: Using configuration type Xen
xen_mem: Initialising balloon driver.
SCSI subsystem initialized
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Probing PCI hardware (bus 01)
PCI: Probing PCI hardware
Grant table initialized
IA-32 Microcode Update Driver: v1.14-xen <tigran@veritas.com>
Initializing Cryptographic API
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
HP CISS Driver (v 2.6.4)
Intel(R) PRO/1000 Network Driver - version 5.6.10.1-k2
Copyright (c) 1999-2004 Intel Corporation.
pcnet32.c:v1.30i 06.28.2004 tsbogend@alpha.franken.de
e100: Intel(R) PRO/100 Network Driver, 3.3.6-k2-NAPI
e100: Copyright(c) 1999-2004 Intel Corporation
PCI: Obtained IRQ 27 for device 0000:00:02.0
e100: eth0: e100_probe: addr 0xfeb7f000, irq 27, MAC addr 00:02:55:C8:07:57
Xen virtual console successfully installed as ttyS0
Event-channel device installed.
Blkif backend is using grant tables.
Initialising Xen netif backend
Blkif frontend is using grant tables.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SvrWks OSB4: IDE controller at PCI slot 0000:00:0f.1
SvrWks OSB4: chipset revision 0
SvrWks OSB4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x0700-0x0707, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0x0708-0x070f, BIOS settings: hdc:pio, hdd:pio
hda: LTN485S, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: ATAPI 48X CD-ROM drive, 120kB Cache, (U)DMA
Uniform CD-ROM driver Revision: 3.20
PCI: Obtained IRQ 28 for device 0000:01:03.0
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
        <Adaptec aic7892 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

(scsi0:A:6): 80.000MB/s transfers (40.000MHz, offset 63, 16bit)
  Vendor: IBM-PSG   Model: DDYS-T36950N  M   Rev: S9HA
  Type:   Direct-Access                      ANSI SCSI revision: 03
scsi0:A:6:0: Tagged Queuing enabled.  Depth 32
Red Hat/Adaptec aacraid driver (1.1.2-lk2 Apr 15 2005)
3ware Storage Controller device driver for Linux v1.26.02.000.
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
SCSI device sda: drive cache: write through
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
SCSI device sda: drive cache: write through
 sda: sda1 sda2
Attached scsi disk sda at scsi0, channel 0, id 6, lun 0
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
md: raid0 personality registered as nr 2
md: raid1 personality registered as nr 3
md: raid5 personality registered as nr 4
raid5: automatically using best checksumming function: pIII_sse
   pIII_sse  :  1004.800 MB/sec
raid5: using function: pIII_sse (1004.800 MB/sec)
md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com
NET: Registered protocol family 2
IP: routing cache hash table of 2048 buckets, 32Kbytes
TCP established hash table entries: 131072 (order: 9, 2097152 bytes)
TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
Bridge firewalling registered
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 348k freed
Adding 1951856k swap on /dev/sda1.  Priority:-1 extents:1
EXT3 FS on sda2, internal journal
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Maximum main memory to use for agp memory: 440M
agpgart: unable to determine aperture size.
agpgart: agp_backend_initialize() failed.
agpgart-serverworks: probe of 0000:00:00.0 failed with error -22
agpgart: Maximum main memory to use for agp memory: 440M
agpgart: unable to determine aperture size.
agpgart: agp_backend_initialize() failed.
agpgart-serverworks: probe of 0000:00:00.1 failed with error -22
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
device eth0 entered promiscuous mode
xen-br0: port 1(eth0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 1(eth0) entering forwarding state
device vif1.0 entered promiscuous mode
xen-br0: port 2(vif1.0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 2(vif1.0) entering forwarding state
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (2)
sstotpop__thtihs_icpsu_c pdiusa bldeis_albloe_clalo_caAlPI_CAPIC

stsompp__tshenisd__cpsu tdopi dsiabslea_blleoc_all_ocAaPIlC_API
C

[-- Attachment #5: xen_blk_grant_debug_up.out --]
[-- Type: text/plain, Size: 33187 bytes --]

xen-br0: port 1(eth0) entering disabled state
xen-br0: port 2(vif1.0) entering disabled state
md: stopping all md devices.
md: md0 switched to read-only mode.
Restarting system.
(XEN) Domain 0 shutdown: rebooting machine.
 __  __            _____  ___         _                _ 
 \ \/ /___ _ __   |___ / / _ \     __| | _____   _____| |
  \  // _ \ '_ \    |_ \| | | |__ / _` |/ _ \ \ / / _ \ |
  /  \  __/ | | |  ___) | |_| |__| (_| |  __/\ V /  __/ |
 /_/\_\___|_| |_| |____(_)___/    \__,_|\___| \_/ \___|_|
                                                         
 http://www.cl.cam.ac.uk/netos/xen
 University of Cambridge Computer Laboratory

 Xen version 3.0-devel (rharper@localdomain) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) Fri Apr 15 15:35:13 CDT 2005
 Latest ChangeSet: information unavailable

(XEN) Physical RAM map:
(XEN)  0000000000000000 - 000000000009dc00 (usable)
(XEN)  000000000009dc00 - 00000000000a0000 (reserved)
(XEN)  00000000000e0000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 0000000037fed140 (usable)
(XEN)  0000000037fed140 - 0000000037ff0000 (ACPI data)
(XEN)  0000000037ff0000 - 0000000038000000 (reserved)
(XEN)  00000000fec00000 - 0000000100000000 (reserved)
(XEN) System RAM: 895MB (917032kB)
(XEN) Xen heap: 10MB (10740kB)
(XEN) CPU0: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) found SMP MP-table at 0009ddd0
(XEN) ACPI: RSDP (v000 IBM                                       ) @ 0x000fdfd0
(XEN) ACPI: RSDT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37feff80
(XEN) ACPI: FADT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37feff00
(XEN) ACPI: MADT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37fefe80
(XEN) ACPI: DSDT (v001 IBM    SERTOPAZ 0x00001000 MSFT 0x0100000b) @ 0x00000000
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x00] lapic_id[0x03] enabled)
(XEN) Processor #3 Pentium(tm) Pro APIC version 17
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) Processor #0 Pentium(tm) Pro APIC version 17
(XEN) Using ACPI for processor (LAPIC) configuration information
(XEN) Intel MultiProcessor Specification v1.4
(XEN)     Virtual Wire compatibility mode.
(XEN) OEM ID: IBM ENSW Product ID: xSeries 220  APIC at: 0xFEE00000
(XEN) I/O APIC #14 Version 17 at 0xFEC00000.
(XEN) I/O APIC #13 Version 17 at 0xFEC01000.
(XEN) Enabling APIC mode: Flat.	Using 2 I/O APICs
(XEN) Processors: 2
(XEN) Using scheduler: Borrowed Virtual Time (bvt)
(XEN) Initializing CPU#0
(XEN) Detected 866.321 MHz processor.
(XEN) CPU0: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) CPU0 booted
(XEN) enabled ExtINT on CPU#0
(XEN) ESR value before enabling vector: 00000000
(XEN) ESR value after enabling vector: 00000000
(XEN) Booting processor 1/0 eip 90000
(XEN) Initializing CPU#1
(XEN) masked ExtINT on CPU#1
(XEN) ESR value before enabling vector: 00000000
(XEN) ESR value after enabling vector: 00000000
(XEN) CPU1: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) CPU1 has booted.
(XEN) Total of 2 processors activated.
(XEN) ENABLING IO-APIC IRQs
(XEN) Setting 14 in the phys_id_present_map
(XEN) ...changing IO-APIC physical APIC ID to 14 ... ok.
(XEN) Setting 13 in the phys_id_present_map
(XEN) ...changing IO-APIC physical APIC ID to 13 ... ok.
(XEN) init IO_APIC IRQs
(XEN) vector_irq[49] = 1
(XEN) vector_irq[51] = 3
(XEN) vector_irq[59] = 4
(XEN) vector_irq[61] = 6
(XEN) vector_irq[69] = 7
(XEN) vector_irq[71] = 8
(XEN) vector_irq[79] = 10
(XEN) vector_irq[81] = 12
(XEN) vector_irq[89] = 13
(XEN) vector_irq[91] = 14
(XEN) vector_irq[99] = 27
(XEN) vector_irq[a1] = 28
(XEN) ..TIMER: vector=0x41 pin1=2 pin2=-1
(XEN) ..MP-BIOS bug: 8254 timer not connected to IO-APIC
(XEN) ...trying to set up timer (IRQ0) through the 8259A ...  failed.
(XEN) ...trying to set up timer as Virtual Wire IRQ... works.
(XEN) number of MP IRQ sources: 13.
(XEN) number of IO-APIC #14 registers: 16.
(XEN) number of IO-APIC #13 registers: 16.
(XEN) testing the IO APIC.......................
(XEN) 
(XEN) IO APIC #14......
(XEN) .... register #00: 0E000000
(XEN) .......    : physical APIC id: 0E
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 0E000000
(XEN) .......     : arbitration: 0E
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 003 03  0    0    0   0   0    1    1    49
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 003 03  0    0    0   0   0    1    1    51
(XEN)  04 003 03  0    0    0   0   0    1    1    59
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 003 03  0    0    0   0   0    1    1    61
(XEN)  07 003 03  0    0    0   0   0    1    1    69
(XEN)  08 003 03  0    0    0   0   0    1    1    71
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 003 03  1    1    0   1   0    1    1    79
(XEN)  0b 000 00  1    0    0   0   0    0    0    00
(XEN)  0c 003 03  0    0    0   0   0    1    1    81
(XEN)  0d 003 03  0    0    0   0   0    1    1    89
(XEN)  0e 003 03  0    0    0   0   0    1    1    91
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) 
(XEN) IO APIC #13......
(XEN) .... register #00: 0D000000
(XEN) .......    : physical APIC id: 0D
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 0D000000
(XEN) .......     : arbitration: 0D
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 000 00  1    0    0   0   0    0    0    00
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 000 00  1    0    0   0   0    0    0    00
(XEN)  04 0D7 07  1    0    0   0   0    1    2    75
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 0F6 06  1    0    0   0   0    0    2    08
(XEN)  07 0D3 03  1    0    0   0   0    0    2    EB
(XEN)  08 000 00  1    0    0   0   0    0    0    00
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 000 00  1    0    0   0   0    0    0    00
(XEN)  0b 003 03  1    1    0   1   0    1    1    99
(XEN)  0c 003 03  1    1    0   1   0    1    1    A1
(XEN)  0d 000 00  1    0    0   0   0    0    0    00
(XEN)  0e 000 00  1    0    0   0   0    0    0    00
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) IRQ to pin mappings:
(XEN) IRQ0 -> 0:2
(XEN) IRQ1 -> 0:1
(XEN) IRQ3 -> 0:3
(XEN) IRQ4 -> 0:4
(XEN) IRQ6 -> 0:6
(XEN) IRQ7 -> 0:7
(XEN) IRQ8 -> 0:8
(XEN) IRQ10 -> 0:10
(XEN) IRQ12 -> 0:12
(XEN) IRQ13 -> 0:13
(XEN) IRQ14 -> 0:14
(XEN) IRQ27 -> 1:11
(XEN) IRQ28 -> 1:12
(XEN) .................................... done.
(XEN) Using local APIC timer interrupts.
(XEN) Calibrating APIC timer for CPU0...
(XEN) ..... CPU speed is 866.2623 MHz.
(XEN) ..... Bus speed is 133.2710 MHz.
(XEN) ..... bus_scale = 0x0000887A
(XEN) checking TSC synchronization across CPUs: passed.
(XEN) Time init:
(XEN) .... System Time: 12905992ns
(XEN) .... cpu_freq:    00000000:33A3063C
(XEN) .... scale:       00000001:27808C52
(XEN) .... Wall Clock:  1113599208s 550000us
(XEN) PCI: PCI BIOS revision 2.10 entry at 0xfd5dc, last bus=1
(XEN) PCI: Using configuration type 1
(XEN) PCI: Probing PCI hardware
(XEN) PCI: Probing PCI hardware (bus 00)
(XEN) PCI: Discovered peer bus 01
(XEN) PCI->APIC IRQ transform: (B0,I2,P0) -> 27
(XEN) PCI->APIC IRQ transform: (B0,I15,P0) -> 10
(XEN) PCI->APIC IRQ transform: (B1,I3,P0) -> 28
(XEN) mtrr: v2.0 (20020519)
(XEN) (file=grant_table.c, line=1229) Grant table init
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Xen-ELF header found: 'GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0xC0000000,LOADER=generic'
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   10000000->20000000 (65536 pages to be allocated)
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: c0100000->c05674c4
(XEN)  Init. ramdisk: c0568000->c0568000
(XEN)  Phys-Mach map: c0568000->c05e8000
(XEN)  Page tables:   c05e8000->c05eb000
(XEN)  Start info:    c05eb000->c05ec000
(XEN)  Boot stack:    c05ec000->c05ed000
(XEN)  TOTAL:         c0000000->c0800000
(XEN)  ENTRY ADDRESS: c0100000
(XEN) Scrubbing Free RAM: .........done.
(XEN) *** Serial input -> DOM0 (type 'CTRL-x' three times to switch input to Xen).
Linux version 2.6.11-xen0 (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 Fri Apr 15 15:47:11 CDT 2005
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000020000000 (usable)
512MB LOWMEM available.
DMI 2.3 present.
IRQ lockup detection disabled
Allocating PCI resources starting at 20000000 (gap: 20000000:e0000000)
Built 1 zonelists
Kernel command line: root=/dev/sda2 ro console=tty0
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 65536 bytes)
Xen reported: 866.321 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 513536k/524288k available (2932k kernel code, 10504k reserved, 1018k data, 320k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: Intel Pentium III (Coppermine) stepping 06
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
NET: Registered protocol family 16
PCI: Using configuration type Xen
xen_mem: Initialising balloon driver.
SCSI subsystem initialized
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Probing PCI hardware (bus 01)
PCI: Probing PCI hardware
Grant table initialized
IA-32 Microcode Update Driver: v1.14-xen <tigran@veritas.com>
Initializing Cryptographic API
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
HP CISS Driver (v 2.6.4)
Intel(R) PRO/1000 Network Driver - version 5.6.10.1-k2
Copyright (c) 1999-2004 Intel Corporation.
pcnet32.c:v1.30i 06.28.2004 tsbogend@alpha.franken.de
e100: Intel(R) PRO/100 Network Driver, 3.3.6-k2-NAPI
e100: Copyright(c) 1999-2004 Intel Corporation
PCI: Obtained IRQ 27 for device 0000:00:02.0
e100: eth0: e100_probe: addr 0xfeb7f000, irq 27, MAC addr 00:02:55:C8:07:57
Xen virtual console successfully installed as ttyS0
Event-channel device installed.
Blkif backend is using grant tables.
Initialising Xen netif backend
Blkif frontend is using grant tables.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SvrWks OSB4: IDE controller at PCI slot 0000:00:0f.1
SvrWks OSB4: chipset revision 0
SvrWks OSB4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x0700-0x0707, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0x0708-0x070f, BIOS settings: hdc:pio, hdd:pio
hda: LTN485S, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: ATAPI 48X CD-ROM drive, 120kB Cache, (U)DMA
Uniform CD-ROM driver Revision: 3.20
PCI: Obtained IRQ 28 for device 0000:01:03.0
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
        <Adaptec aic7892 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

(scsi0:A:6): 80.000MB/s transfers (40.000MHz, offset 63, 16bit)
  Vendor: IBM-PSG   Model: DDYS-T36950N  M   Rev: S9HA
  Type:   Direct-Access                      ANSI SCSI revision: 03
scsi0:A:6:0: Tagged Queuing enabled.  Depth 32
Red Hat/Adaptec aacraid driver (1.1.2-lk2 Apr 15 2005)
3ware Storage Controller device driver for Linux v1.26.02.000.
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
SCSI device sda: drive cache: write through
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
SCSI device sda: drive cache: write through
 sda: sda1 sda2
Attached scsi disk sda at scsi0, channel 0, id 6, lun 0
Fusion MPT base driver 3.01.18
Copyright (c) 1999-2004 LSI Logic Corporation
Fusion MPT SCSI Host driver 3.01.18
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
md: raid0 personality registered as nr 2
md: raid1 personality registered as nr 3
md: raid5 personality registered as nr 4
raid5: automatically using best checksumming function: pIII_sse
   pIII_sse  :  1444.800 MB/sec
raid5: using function: pIII_sse (1444.800 MB/sec)
md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com
NET: Registered protocol family 2
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
Bridge firewalling registered
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
EXT3-fs: INFO: recovery required on readonly filesystem.
EXT3-fs: write access will be enabled during recovery.
EXT3-fs: recovery complete.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 320k freed
Adding 1951856k swap on /dev/sda1.  Priority:-1 extents:1
EXT3 FS on sda2, internal journal
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Maximum main memory to use for agp memory: 440M
agpgart: unable to determine aperture size.
agpgart: agp_backend_initialize() failed.
agpgart-serverworks: probe of 0000:00:00.0 failed with error -22
agpgart: Maximum main memory to use for agp memory: 440M
agpgart: unable to determine aperture size.
agpgart: agp_backend_initialize() failed.
agpgart-serverworks: probe of 0000:00:00.1 failed with error -22
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
device eth0 entered promiscuous mode
xen-br0: port 1(eth0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 1(eth0) entering forwarding state
device vif1.0 entered promiscuous mode
xen-br0: port 2(vif1.0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 2(vif1.0) entering forwarding state
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (3) for domain (1) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (1) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (1) with handle (3)
ssttoop_pth_ithsis__ccppu ud diissaablbele_l_olcaolca_l_AAPPIICC

stsompp_s_ethnid_sst_opc pud diisasblea_lboclae_ll_AoPcaIl_CAPI
C
device vif1.0 left promiscuous mode
xen-br0: port 2(vif1.0) entering disabled state
xen-br0: port 2(vif1.0) entering disabled state
device vif2.0 entered promiscuous mode
xen-br0: port 2(vif2.0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 2(vif2.0) entering forwarding state
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (3) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (1) for domain (2) with handle (3)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (2) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (3) for domain (2) with handle (5)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (2) with handle (4)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (2) with handle (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (2) with handle (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (2) with handle (4)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (3) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (2) with handle (4)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (2) with handle (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (3) for domain (2) with handle (5)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (3) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (3) for domain (2) with handle (5)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (2) with handle (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (2) with handle (4)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (2) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (6)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (6)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (6)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (6)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (2) with handle (7)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (2) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (2) with handle (6)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (5) for domain (2) with handle (6)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (4) for domain (2) with handle (7)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (2) with handle (4)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=393) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (7) for domain (2) with handle (2)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (0) for domain (2) with handle (1)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (6) for domain (2) with handle (4)
(XEN) (file=grant_table.c, line=504) Unmapping grant ref (2) for domain (2) with handle (7)

[-- Attachment #6: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

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

* Re: Unstableness in grant table block drivers
  2005-04-15 21:14             ` Ryan Harper
@ 2005-04-15 21:32               ` Kip Macy
  2005-04-15 21:41                 ` Ryan Harper
  2005-04-15 21:52                 ` Ryan Harper
  0 siblings, 2 replies; 42+ messages in thread
From: Kip Macy @ 2005-04-15 21:32 UTC (permalink / raw)
  To: Ryan Harper; +Cc: cwc22, xen-devel

pass nosmp to xen at boot and you have UP

On 4/15/05, Ryan Harper <ryanh@us.ibm.com> wrote:
> * Christopher Clark <christopher.w.clark@gmail.com> [2005-04-15 13:44]:
> > Hi Ryan
> >
> > OK, I've got a system I can work on now.
> > Could you please modify the GRANT_DEBUG and GRANT_DEBUG_VERBOSE to be
> > set to 1, at the top of xen/common/grant_table.c and then make a debug
> > build of xen.
> >
> > The verbose option will slow any successful boot down to a crawl, so
> > you don't want to leave it on unnecessarily once things are working.
> >
> > I'd like to see:
> > all the boot messages from xen and dom0
> > the same from your attempt to boot domU
> 
> Attached, both smp and non-smp.
> 
> > If you have to option to test it on a uniprocessor box, please use
> > that as that would match what I'm using here.
> 
> I only have an SMP box setup right now, Ill repeat those dumps on a UP
> box tomorrow.
> 
> --
> Ryan Harper
> Software Engineer; Linux Technology Center
> IBM Corp., Austin, Tx
> (512) 838-9253   T/L: 678-9253
> ryanh@us.ibm.com
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
> 
> 
> 
>

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

* Re: Unstableness in grant table block drivers
  2005-04-15 21:32               ` Kip Macy
@ 2005-04-15 21:41                 ` Ryan Harper
  2005-04-15 21:46                   ` Kip Macy
  2005-04-15 21:52                 ` Ryan Harper
  1 sibling, 1 reply; 42+ messages in thread
From: Ryan Harper @ 2005-04-15 21:41 UTC (permalink / raw)
  To: Kip Macy; +Cc: cwc22, xen-devel

* Kip Macy <kip.macy@gmail.com> [2005-04-15 16:32]:
> pass nosmp to xen at boot and you have UP

Indeed.  Of course, now the machine won't reboot with that option
passed.  *sigh*

--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* Re: Unstableness in grant table block drivers
  2005-04-15 21:41                 ` Ryan Harper
@ 2005-04-15 21:46                   ` Kip Macy
  2005-04-15 21:50                     ` Ryan Harper
  0 siblings, 1 reply; 42+ messages in thread
From: Kip Macy @ 2005-04-15 21:46 UTC (permalink / raw)
  To: Ryan Harper; +Cc: xen-devel

Ouch. I just used it this morning for a tree from last night, so I
didn't anticipate any problems.

         -Kip


On 4/15/05, Ryan Harper <ryanh@us.ibm.com> wrote:
> * Kip Macy <kip.macy@gmail.com> [2005-04-15 16:32]:
> > pass nosmp to xen at boot and you have UP
> 
> Indeed.  Of course, now the machine won't reboot with that option
> passed.  *sigh*
> 
> --
> Ryan Harper
> Software Engineer; Linux Technology Center
> IBM Corp., Austin, Tx
> (512) 838-9253   T/L: 678-9253
> ryanh@us.ibm.com
>

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

* Re: Unstableness in grant table block drivers
  2005-04-15 21:46                   ` Kip Macy
@ 2005-04-15 21:50                     ` Ryan Harper
  0 siblings, 0 replies; 42+ messages in thread
From: Ryan Harper @ 2005-04-15 21:50 UTC (permalink / raw)
  To: Kip Macy; +Cc: xen-devel

* Kip Macy <kip.macy@gmail.com> [2005-04-15 16:44]:
> Ouch. I just used it this morning for a tree from last night, so I
> didn't anticipate any problems.

Yeah, more than likely it's something 'unique' about my aging hardware.
Thanks for the info, none-the-less.

--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* Re: Unstableness in grant table block drivers
  2005-04-15 21:32               ` Kip Macy
  2005-04-15 21:41                 ` Ryan Harper
@ 2005-04-15 21:52                 ` Ryan Harper
  2005-04-15 22:07                   ` Christopher Clark
  1 sibling, 1 reply; 42+ messages in thread
From: Ryan Harper @ 2005-04-15 21:52 UTC (permalink / raw)
  To: Kip Macy; +Cc: cwc22, xen-devel

* Kip Macy <kip.macy@gmail.com> [2005-04-15 16:32]:
> pass nosmp to xen at boot and you have UP

The behavior is the same as I posted before.  I will also try on a real
UP box tomorrow as well.

-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* Re: Unstableness in grant table block drivers
  2005-04-15 21:52                 ` Ryan Harper
@ 2005-04-15 22:07                   ` Christopher Clark
  2005-04-15 22:08                     ` Ryan Harper
  0 siblings, 1 reply; 42+ messages in thread
From: Christopher Clark @ 2005-04-15 22:07 UTC (permalink / raw)
  To: Ryan Harper; +Cc: xen-devel

Could you try without the block front end driver in dom0? Is there a
reason you need it in there?

c.

On 4/15/05, Ryan Harper <ryanh@us.ibm.com> wrote:
> * Kip Macy <kip.macy@gmail.com> [2005-04-15 16:32]:
> > pass nosmp to xen at boot and you have UP
> 
> The behavior is the same as I posted before.  I will also try on a real
> UP box tomorrow as well.
> 
> --
> Ryan Harper
> Software Engineer; Linux Technology Center
> IBM Corp., Austin, Tx
> (512) 838-9253   T/L: 678-9253
> ryanh@us.ibm.com
>

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

* Re: Unstableness in grant table block drivers
  2005-04-15 22:07                   ` Christopher Clark
@ 2005-04-15 22:08                     ` Ryan Harper
  0 siblings, 0 replies; 42+ messages in thread
From: Ryan Harper @ 2005-04-15 22:08 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

* Christopher Clark <christopher.w.clark@gmail.com> [2005-04-15 17:05]:
> Could you try without the block front end driver in dom0? Is there a
> reason you need it in there?

I don't understand much about the front/back end driver stuff.  I just
take the default xenolinux configs and go with them.

Do you have a .config for dom0/domU that you want me to use?

Or at least what CONFIG_ options should be on/off for the dump?

-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* RE: Unstableness in grant table block drivers
@ 2005-04-15 22:30 Ian Pratt
  2005-04-16  1:18 ` Christopher Clark
  0 siblings, 1 reply; 42+ messages in thread
From: Ian Pratt @ 2005-04-15 22:30 UTC (permalink / raw)
  To: Ryan Harper, Kip Macy; +Cc: xen-devel

 > * Kip Macy <kip.macy@gmail.com> [2005-04-15 16:44]:
> > Ouch. I just used it this morning for a tree from last night, so I 
> > didn't anticipate any problems.
> 
> Yeah, more than likely it's something 'unique' about my aging 
> hardware.
> Thanks for the info, none-the-less.

Try "maxcpus=1"

I added it a couple of days ago.

Thanks,
Ian

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

* Re: Unstableness in grant table block drivers
  2005-04-15 22:30 Ian Pratt
@ 2005-04-16  1:18 ` Christopher Clark
  2005-04-16  1:32   ` Christopher Clark
  0 siblings, 1 reply; 42+ messages in thread
From: Christopher Clark @ 2005-04-16  1:18 UTC (permalink / raw)
  To: Ian Pratt; +Cc: Kip Macy, Ryan Harper, xen-devel

Anyone have ideas as to what this is in both of Ryan's Xen/dom0 output?

"ssttoop_pth_ithsis__ccppu ud diissaablbele_l_olcaolca_l_AAPPIICC

stsompp_s_ethnid_sst_opc pud diisasblea_lboclae_ll_AoPcaIl_CAPI
C
"

It doesn't look good to me.

c.

On 4/15/05, Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk> wrote:
>  > * Kip Macy <kip.macy@gmail.com> [2005-04-15 16:44]:
> > > Ouch. I just used it this morning for a tree from last night, so I
> > > didn't anticipate any problems.
> >
> > Yeah, more than likely it's something 'unique' about my aging
> > hardware.
> > Thanks for the info, none-the-less.
> 
> Try "maxcpus=1"
> 
> I added it a couple of days ago.
> 
> Thanks,
> Ian
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>

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

* RE: Unstableness in grant table block drivers
@ 2005-04-16  1:32 Ian Pratt
  2005-04-16 15:39 ` Ryan Harper
  0 siblings, 1 reply; 42+ messages in thread
From: Ian Pratt @ 2005-04-16  1:32 UTC (permalink / raw)
  To: cwc22; +Cc: Kip Macy, Ryan Harper, xen-devel

> Anyone have ideas as to what this is in both of Ryan's 
> Xen/dom0 output?
> 
> "ssttoop_pth_ithsis__ccppu ud diissaablbele_l_olcaolca_l_AAPPIICC
> 
> stsompp_s_ethnid_sst_opc pud diisasblea_lboclae_ll_AoPcaIl_CAPI
> C
> "

Panic is the only thing that calls smp_send_stop, so I think the badness
has already happened.

Ryan: is this an SMP guest?

Ian

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

* Re: Unstableness in grant table block drivers
  2005-04-16  1:18 ` Christopher Clark
@ 2005-04-16  1:32   ` Christopher Clark
  2005-04-16  3:03     ` David Hopwood
  0 siblings, 1 reply; 42+ messages in thread
From: Christopher Clark @ 2005-04-16  1:32 UTC (permalink / raw)
  To: xen-devel

got it. "stop_this_cpu disable_local_APIC"
from smp.c

c.

On 4/15/05, Christopher Clark <christopher.w.clark@gmail.com> wrote:
> Anyone have ideas as to what this is in both of Ryan's Xen/dom0 output?
> 
> "ssttoop_pth_ithsis__ccppu ud diissaablbele_l_olcaolca_l_AAPPIICC
> 
> stsompp_s_ethnid_sst_opc pud diisasblea_lboclae_ll_AoPcaIl_CAPI
> C
> "
>

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

* Re: Unstableness in grant table block drivers
  2005-04-16  1:32   ` Christopher Clark
@ 2005-04-16  3:03     ` David Hopwood
  0 siblings, 0 replies; 42+ messages in thread
From: David Hopwood @ 2005-04-16  3:03 UTC (permalink / raw)
  To: xen-devel

Christopher Clark wrote:
> got it. "stop_this_cpu disable_local_APIC"
> from smp.c

The second one is also interleaved with
"smp_send_stop disable_local_APIC".

>>stsompp_s_ethnid_sst_opc pud diisasblea_lboclae_ll_AoPcaIl_CAPIC

-- 
David Hopwood <david.nospam.hopwood@blueyonder.co.uk>

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

* Re: Unstableness in grant table block drivers
  2005-04-16  1:32 Unstableness in grant table block drivers Ian Pratt
@ 2005-04-16 15:39 ` Ryan Harper
  2005-04-18 16:38   ` Christopher Clark
  0 siblings, 1 reply; 42+ messages in thread
From: Ryan Harper @ 2005-04-16 15:39 UTC (permalink / raw)
  To: Ian Pratt; +Cc: Kip Macy, cwc22, xen-devel, Ryan Harper

* Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk> [2005-04-16 10:29]:
> > Anyone have ideas as to what this is in both of Ryan's 
> > Xen/dom0 output?
> > 
> > "ssttoop_pth_ithsis__ccppu ud diissaablbele_l_olcaolca_l_AAPPIICC
> > 
> > stsompp_s_ethnid_sst_opc pud diisasblea_lboclae_ll_AoPcaIl_CAPI
> > C
> > "
> 
> Panic is the only thing that calls smp_send_stop, so I think the badness
> has already happened.
> 
> Ryan: is this an SMP guest?

Yes, that only shows up when trying to boot an SMP guest.

-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* Re: Unstableness in grant table block drivers
  2005-04-16 15:39 ` Ryan Harper
@ 2005-04-18 16:38   ` Christopher Clark
  2005-04-18 16:45     ` Ryan Harper
  2005-04-18 20:51     ` Ryan Harper
  0 siblings, 2 replies; 42+ messages in thread
From: Christopher Clark @ 2005-04-18 16:38 UTC (permalink / raw)
  To: Ryan Harper, Anthony Liguori; +Cc: xen-devel

[-- Attachment #1: Type: text/plain, Size: 801 bytes --]

> > Ryan: is this an SMP guest?
> 
> Yes, that only shows up when trying to boot an SMP guest.

Does the crash only occur when trying to boot an SMP guest - ie. do UP
guests start correctly?

Ryan and Anthony: I've attached a patch that I'd like you to apply to
your unstable tree -- it just printk's almost everything so I can get
an idea of the code path you're running.
Alternatively, the three .c files modified by the patch are also
attached - they're taken from 2005-04-14 unstable and you should be
able to just replace the files in your tree.

After changing your tree and rebuilding, please send the console logs
from boot onwards for xen/dom0 and domU, in a uniprocessor
configuration, both with and without using grant tables for block
transport.

thanks

Christopher

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: instrument.patch --]
[-- Type: text/x-patch; name="instrument.patch", Size: 18364 bytes --]

===== linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c 1.38 vs edited =====
--- 1.38/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c	2005-04-05 05:28:05 -07:00
+++ edited/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c	2005-04-17 21:14:38 -07:00
@@ -115,6 +115,7 @@
 
 static void fast_flush_area(int idx, int nr_pages)
 {
+    printk("cwc:%s:in\n", __FUNCTION__);
 #ifdef CONFIG_XEN_BLKDEV_GRANT
     gnttab_op_t       aop[BLKIF_MAX_SEGMENTS_PER_REQUEST];
     unsigned int      i, invcount = 0;
@@ -151,6 +152,7 @@
     if ( unlikely(HYPERVISOR_multicall(mcl, nr_pages) != 0) )
         BUG();
 #endif
+    printk("cwc:%s:out\n", __FUNCTION__);
 }
 
 
@@ -374,6 +376,7 @@
 {
     int rsp = BLKIF_RSP_ERROR;
     int pending_idx = pending_ring[MASK_PEND_IDX(pending_cons)];
+    printk("cwc:%s:in id:%lu\n", __FUNCTION__, req->id);
 
     /* We expect one buffer only. */
     if ( unlikely(req->nr_segments != 1) )
@@ -384,6 +387,7 @@
          (blkif_last_sect(req->frame_and_sects[0]) != 7) )
         goto out;
 
+    printk("cwc:%s:mid\n", __FUNCTION__);
 #ifdef CONFIG_XEN_BLKDEV_GRANT
     {
         gnttab_op_t     op;
@@ -428,12 +432,14 @@
 #endif
 #endif /* endif CONFIG_XEN_BLKDEV_GRANT */
    
+    printk("cwc:%s:vbd_probe\n", __FUNCTION__);
     rsp = vbd_probe(blkif, (vdisk_t *)MMAP_VADDR(pending_idx, 0), 
                     PAGE_SIZE / sizeof(vdisk_t));
 
  out:
     fast_flush_area(pending_idx, 1);
     make_response(blkif, req->id, req->operation, rsp);
+    printk("cwc:%s:out response:%d\n", __FUNCTION__, rsp);
 }
 
 static void dispatch_rw_block_io(blkif_t *blkif, blkif_request_t *req)
@@ -464,6 +470,7 @@
 
     /* Check that number of segments is sane. */
     nseg = req->nr_segments;
+    printk("cwc:%s:in nsegs:%u\n", __FUNCTION__, nseg);
     if ( unlikely(nseg == 0) || 
          unlikely(nseg > BLKIF_MAX_SEGMENTS_PER_REQUEST) )
     {
@@ -497,6 +504,7 @@
     if ( unlikely(HYPERVISOR_grant_table_op(
                     GNTTABOP_map_grant_ref, aop, nseg)))
         BUG();
+    printk("cwc:%s:post map\n", __FUNCTION__);
 
     for ( i = 0; i < nseg; i++ )
     {
@@ -513,6 +521,7 @@
         pending_handle(pending_idx, i) = aop[i].u.map_grant_ref.handle;
     }
 #endif
+    printk("cwc:%s:pre populate segs\n", __FUNCTION__);
 
     for ( i = 0; i < nseg; i++ )
     {
@@ -527,6 +536,8 @@
             goto bad_descriptor;
         preq.nr_sects += seg[i].nsec;
 #endif
+     	printk("cwc:%s: buf:%lx populated %u sects\n",
+               __FUNCTION__, seg[i].buf, seg[i].nsec);
     }
 
     if ( vbd_translate(&preq, blkif, operation) != 0 )
@@ -646,6 +657,7 @@
 
         preq.sector_number += seg[i].nsec;
     }
+    printk("cwc:%s: post bio_add_page\n", __FUNCTION__);
 
     if ( (q = bdev_get_queue(bio->bi_bdev)) != plugged_queue )
     {
@@ -662,11 +674,13 @@
         submit_bio(operation, biolist[i]);
 
 #endif
+    printk("cwc:%s: %d bios submitted\n", __FUNCTION__, nbio);
 
     return;
 
  bad_descriptor:
     make_response(blkif, req->id, req->operation, BLKIF_RSP_ERROR);
+    printk("cwc:%s: %d bad descriptor\n", __FUNCTION__);
 } 
 
 
===== linux-2.6.11-xen-sparse/drivers/xen/blkfront/blkfront.c 1.52 vs edited =====
--- 1.52/linux-2.6.11-xen-sparse/drivers/xen/blkfront/blkfront.c	2005-04-05 00:43:40 -07:00
+++ edited/linux-2.6.11-xen-sparse/drivers/xen/blkfront/blkfront.c	2005-04-17 22:34:21 -07:00
@@ -226,6 +226,7 @@
 {
     struct gendisk *gd = inode->i_bdev->bd_disk;
     struct xlbd_disk_info *di = (struct xlbd_disk_info *)gd->private_data;
+    printk("cwc:%s: called\n", __FUNCTION__);
 
     /* Update of usage count is protected by per-device semaphore. */
     di->mi->usage++;
@@ -238,6 +239,7 @@
 {
     struct gendisk *gd = inode->i_bdev->bd_disk;
     struct xlbd_disk_info *di = (struct xlbd_disk_info *)gd->private_data;
+    printk("cwc:%s: called\n", __FUNCTION__);
 
     /*
      * When usage drops to zero it may allow more VBD updates to occur.
@@ -255,6 +257,7 @@
                 unsigned command, unsigned long argument)
 {
     int i;
+    printk("cwc:%s: called\n", __FUNCTION__);
 
     DPRINTK_IOCTL("command: 0x%x, argument: 0x%lx, dev: 0x%04x\n",
                   command, (long)argument, inode->i_rdev); 
@@ -305,6 +308,7 @@
 #ifdef CONFIG_XEN_BLKDEV_GRANT
     int ref;
 #endif
+    printk("cwc:%s: in blkif_state:%u\n", __FUNCTION__, blkif_state);
 
     if ( unlikely(blkif_state != BLKIF_STATE_CONNECTED) )
         return 1;
@@ -355,6 +359,7 @@
     /* Keep a private copy so we can reissue requests when recovering. */
     translate_req_to_pfn(&rec_ring[id], ring_req);
 
+    printk("cwc:%s: out\n", __FUNCTION__);
     return 0;
 }
 
@@ -367,6 +372,7 @@
 {
     struct request *req;
     int queued;
+    printk("cwc:%s: called\n", __FUNCTION__);
 
     DPRINTK("Entered do_blkif_request\n"); 
 
@@ -407,12 +413,15 @@
     RING_IDX i, rp;
     unsigned long flags; 
     
+    printk("cwc:%s: pre spin_lock_irqsave\n", __FUNCTION__);
     spin_lock_irqsave(&blkif_io_lock, flags);     
+    printk("cwc:%s: post spin_lock_irqsave\n", __FUNCTION__);
 
     if ( unlikely(blkif_state == BLKIF_STATE_CLOSED) || 
          unlikely(recovery) )
     {
         spin_unlock_irqrestore(&blkif_io_lock, flags);
+        printk("cwc:%s: spin_unlock_irqsave\n", __FUNCTION__);
         return IRQ_HANDLED;
     }
     
@@ -426,6 +435,7 @@
         bret = RING_GET_RESPONSE(&blk_ring, i);
         id = bret->id;
         req = (struct request *)rec_ring[id].id;
+        printk("cwc:%s: blkif_completion call id %lu\n", __FUNCTION__, id);
         blkif_completion( &rec_ring[id] );
 
         ADD_ID_TO_FREELIST(id); /* overwrites req */
@@ -454,12 +464,14 @@
             BUG();
         }
     }
+    printk("cwc:%s: post loop\n", __FUNCTION__);
 
     blk_ring.rsp_cons = i;
     
     kick_pending_request_queues();
 
     spin_unlock_irqrestore(&blkif_io_lock, flags);
+    printk("cwc:%s: out unlock_irq_restore\n", __FUNCTION__);
 
     return IRQ_HANDLED;
 }
@@ -768,6 +780,7 @@
 #ifdef CONFIG_XEN_BLKDEV_GRANT
     int ref;
 #endif
+    printk("cwc:%s: in op:%d\n", __FUNCTION__, operation);
 
     fsect = (buffer_ma & ~PAGE_MASK) >> 9;
     lsect = fsect + nr_sectors - 1;
@@ -809,6 +822,7 @@
              (sg_dev == device) &&
              (sg_next_sect == sector_number) )
         {
+            printk("cwc:%s: building req\n", __FUNCTION__);
             req = RING_GET_REQUEST(&blk_ring, 
                                    blk_ring.req_prod_pvt - 1);
             bh = (struct buffer_head *)id;
@@ -842,10 +856,12 @@
             /* Update the copy of the request in the recovery ring. */
             translate_req_to_pfn(&rec_ring[req->id], req );
 
+            printk("cwc:%s: access granted to %lx\n", __FUNCTION__, buffer_ma);
             return 0;
         }
         else if ( RING_FULL(&blk_ring) )
         {
+            printk("cwc:%s: ring full\n", __FUNCTION__);
             return 1;
         }
         else
@@ -857,8 +873,12 @@
         break;
 
     default:
+        {
+        printk("cwc:%s: pre panic for unknown op %d\n", __FUNCTION__, operation);
         panic("unknown op %d\n", operation);
+        }
     }
+    printk("cwc:%s: mid\n", __FUNCTION__);
 
     /* Fill out a communications ring structure. */
     req = RING_GET_REQUEST(&blk_ring, blk_ring.req_prod_pvt);
@@ -892,6 +912,7 @@
 
     blk_ring.req_prod_pvt++;
     
+    printk("cwc:%s: out buf:%lx\n", __FUNCTION__, buffer_ma);
     return 0;
 }
 
@@ -1051,6 +1072,7 @@
     ASSERT( ref != -ENOSPC );
 
     gnttab_grant_foreign_access_ref( ref, rdomid, address >> PAGE_SHIFT, 0 );
+    printk("cwc:%s: grant access to buf:%lx\n", __FUNCTION__, address >> PAGE_SHIFT);
 
     req->frame_and_sects[0] = (((u32) ref) << 16) | 7;
 
@@ -1062,6 +1084,7 @@
 {
     unsigned long flags, id;
     blkif_request_t *req_d;
+    printk("cwc:%s: in\n", __FUNCTION__);
 
  retry:
     while ( RING_FULL(&blk_ring) )
@@ -1070,9 +1093,12 @@
         schedule_timeout(1);
     }
 
+    printk("cwc:%s: pre spin_lock_irqsave\n", __FUNCTION__);
     spin_lock_irqsave(&blkif_io_lock, flags);
+    printk("cwc:%s: post spin_lock_irqsave\n", __FUNCTION__);
     if ( RING_FULL(&blk_ring) )
     {
+        printk("cwc:%s: spin_unlock_irqrestore\n", __FUNCTION__);
         spin_unlock_irqrestore(&blkif_io_lock, flags);
         goto retry;
     }
@@ -1090,6 +1116,7 @@
     blk_ring.req_prod_pvt++;
     flush_requests();
 
+    printk("cwc:%s: spin_unlock_irqrestore 2\n", __FUNCTION__);
     spin_unlock_irqrestore(&blkif_io_lock, flags);
 
     while ( !blkif_control_rsp_valid )
@@ -1100,6 +1127,7 @@
 
     memcpy(rsp, &blkif_control_rsp, sizeof(*rsp));
     blkif_control_rsp_valid = 0;
+    printk("cwc:%s: out\n", __FUNCTION__);
 }
 
 
@@ -1115,6 +1143,7 @@
     
     msg->status = (ok ? BLKIF_DRIVER_STATUS_UP : BLKIF_DRIVER_STATUS_DOWN);
 
+    printk("cwc:%s: ctrl_if_send_message_block\n", __FUNCTION__);
     ctrl_if_send_message_block(&cmsg, NULL, 0, TASK_UNINTERRUPTIBLE);
 }
 
@@ -1131,16 +1160,20 @@
     msg->handle      = 0;
     msg->shmem_frame = (virt_to_machine(blk_ring.sring) >> PAGE_SHIFT);
     
+    printk("cwc:%s: ctrl_if_send_message_block\n", __FUNCTION__);
     ctrl_if_send_message_block(&cmsg, NULL, 0, TASK_UNINTERRUPTIBLE);
 }
 
 static void blkif_free(void)
 {
     /* Prevent new requests being issued until we fix things up. */
+    printk("cwc:%s: pre spin_lock_irq\n", __FUNCTION__);
     spin_lock_irq(&blkif_io_lock);
+    printk("cwc:%s: post spin_lock_irq\n", __FUNCTION__);
     recovery = 1;
     blkif_state = BLKIF_STATE_DISCONNECTED;
     spin_unlock_irq(&blkif_io_lock);
+    printk("cwc:%s: spin_unlock_irq\n", __FUNCTION__);
 
     /* Free resources associated with old device channel. */
     if ( blk_ring.sring != NULL )
@@ -1153,16 +1186,19 @@
     
     unbind_evtchn_from_irq(blkif_evtchn);
     blkif_evtchn = 0;
+    printk("cwc:%s: out\n", __FUNCTION__);
 }
 
 static void blkif_close(void)
 {
+    printk("cwc:%s: called\n", __FUNCTION__);
 }
 
 /* Move from CLOSED to DISCONNECTED state. */
 static void blkif_disconnect(void)
 {
     blkif_sring_t *sring;
+    printk("cwc:%s: called\n", __FUNCTION__);
     
     if ( blk_ring.sring != NULL )
         free_page((unsigned long)blk_ring.sring);
@@ -1176,6 +1212,7 @@
 
 static void blkif_reset(void)
 {
+    printk("cwc:%s: called\n", __FUNCTION__);
     blkif_free();
     blkif_disconnect();
 }
@@ -1184,6 +1221,7 @@
 {
     int i;
     blkif_request_t *req;
+    printk("cwc:%s: in\n", __FUNCTION__);
 
     /* Hmm, requests might be re-ordered when we re-issue them.
      * This will need to be fixed once we have barriers */
@@ -1199,6 +1237,7 @@
             blk_ring.req_prod_pvt++;
         }
     }
+    printk("cwc:%s: post 1\n", __FUNCTION__);
 
     /* Stage 2 : Set up shadow list. */
     for ( i = 0; i < blk_ring.req_prod_pvt; i++ ) 
@@ -1208,12 +1247,14 @@
         req->id = i;
         translate_req_to_pfn(&rec_ring[i], req);
     }
+    printk("cwc:%s: post 2\n", __FUNCTION__);
 
     /* Stage 3 : Set up free list. */
     for ( ; i < BLK_RING_SIZE; i++ )
         rec_ring[i].id = i+1;
     rec_ring_free = blk_ring.req_prod_pvt;
     rec_ring[BLK_RING_SIZE-1].id = 0x0fffffff;
+    printk("cwc:%s: post 3\n", __FUNCTION__);
 
     /* blk_ring->req_prod will be set when we flush_requests().*/
     wmb();
@@ -1229,6 +1270,7 @@
 
     /* Now safe to left other peope use interface. */
     blkif_state = BLKIF_STATE_CONNECTED;
+    printk("cwc:%s: out\n", __FUNCTION__);
 }
 
 static void blkif_connect(blkif_fe_interface_status_t *status)
@@ -1240,6 +1282,7 @@
 #ifdef CONFIG_XEN_BLKDEV_GRANT
     rdomid       = status->domid;
 #endif
+    printk("cwc:%s: in\n", __FUNCTION__);
 
     err = request_irq(blkif_irq, blkif_int, SA_SAMPLE_RANDOM, "blkif", NULL);
     if ( err )
@@ -1250,6 +1293,7 @@
 
     if ( recovery ) 
     {
+        printk("cwc:%s: recovery\n", __FUNCTION__);
         blkif_recover();
     } 
     else 
@@ -1257,15 +1301,19 @@
         /* Transition to connected in case we need to do 
          *  a partition probe on a whole disk. */
         blkif_state = BLKIF_STATE_CONNECTED;
+        printk("cwc:%s: connected\n", __FUNCTION__);
         
         /* Probe for discs attached to the interface. */
         xlvbd_init();
     }
     
     /* Kick pending requests. */
+    printk("cwc:%s: pre spin_lock_irq\n", __FUNCTION__);
     spin_lock_irq(&blkif_io_lock);
+    printk("cwc:%s: post spin_lock_irq\n", __FUNCTION__);
     kick_pending_request_queues();
     spin_unlock_irq(&blkif_io_lock);
+    printk("cwc:%s: spin_unlock_irq\n", __FUNCTION__);
 }
 
 static void unexpected(blkif_fe_interface_status_t *status)
@@ -1282,6 +1330,7 @@
         unexpected(status);
         return;
     }
+    printk("cwc:%s: status: %u\n", __FUNCTION__, status->status);
 
     switch ( status->status ) 
     {
@@ -1353,6 +1402,7 @@
 
 static void blkif_ctrlif_rx(ctrl_msg_t *msg, unsigned long id)
 {
+    printk("cwc:%s: called\n", __FUNCTION__);
     switch ( msg->subtype )
     {
     case CMSG_BLKIF_FE_INTERFACE_STATUS:
@@ -1371,6 +1421,7 @@
 {
     int err = 0;
     int i;
+    printk("cwc:%s: in\n", __FUNCTION__);
     send_driver_status(1);
 
     /*
@@ -1389,6 +1440,7 @@
         printk(KERN_INFO "xen_blk: Timeout connecting to device!\n");
         err = -ENOSYS;
     }
+    printk("cwc:%s: out\n", __FUNCTION__);
     return err;
 }
 
@@ -1424,16 +1476,19 @@
 
 void blkdev_suspend(void)
 {
+    printk("cwc:%s: called\n", __FUNCTION__);
 }
 
 void blkdev_resume(void)
 {
+    printk("cwc:%s: called\n", __FUNCTION__);
     send_driver_status(1);
 }
 
 void blkif_completion(blkif_request_t *req)
 {
     int i;
+    printk("cwc:%s: in\n", __FUNCTION__);
 #ifdef CONFIG_XEN_BLKDEV_GRANT
     grant_ref_t gref;
 
@@ -1456,4 +1511,5 @@
         break;
     }
 #endif
+    printk("cwc:%s: out\n", __FUNCTION__);
 }
===== xen/common/grant_table.c 1.33 vs edited =====
--- 1.33/xen/common/grant_table.c	2005-04-14 13:53:23 -07:00
+++ edited/xen/common/grant_table.c	2005-04-17 22:18:32 -07:00
@@ -22,8 +22,8 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#define GRANT_DEBUG 0
-#define GRANT_DEBUG_VERBOSE 0
+#define GRANT_DEBUG 1
+#define GRANT_DEBUG_VERBOSE 1
 
 #include <xen/config.h>
 #include <xen/sched.h>
@@ -104,7 +104,9 @@
     act = &granting_d->grant_table->active[ref];
     sha = &granting_d->grant_table->shared[ref];
 
+    printk("cwc:%s: pre spin_lock\n", __FUNCTION__);
     spin_lock(&granting_d->grant_table->lock);
+    printk("cwc:%s: post spin_lock\n", __FUNCTION__);
 
     if ( act->pin == 0 )
     {
@@ -248,6 +250,7 @@
      */
 
     spin_unlock(&granting_d->grant_table->lock);
+    printk("cwc:%s: spin_unlock\n", __FUNCTION__);
 
     if ( (host_virt_addr != 0) && (dev_hst_ro_flags & GNTMAP_host_map) )
     {
@@ -269,7 +272,9 @@
         {
             /* Abort. */
 
+            printk("cwc:%s: pre spin_lock 2\n", __FUNCTION__);
             spin_lock(&granting_d->grant_table->lock);
+            printk("cwc:%s: post spin_lock 2\n", __FUNCTION__);
 
             if ( dev_hst_ro_flags & GNTMAP_readonly )
                 act->pin -= GNTPIN_hstr_inc;
@@ -289,14 +294,17 @@
             }
 
             spin_unlock(&granting_d->grant_table->lock);
+            printk("cwc:%s: spin_unlock 2\n", __FUNCTION__);
         }
 
     }
     *pframe = frame;
+    printk("cwc:%s: out\n", __FUNCTION__);
     return rc;
 
  unlock_out:
     spin_unlock(&granting_d->grant_table->lock);
+    printk("cwc:%s: spin_unlock out\n", __FUNCTION__);
     return rc;
 }
 
@@ -507,7 +515,9 @@
     act = &rd->grant_table->active[ref];
     sha = &rd->grant_table->shared[ref];
 
+    printk("cwc:%s: pre spin_lock\n", __FUNCTION__);
     spin_lock(&rd->grant_table->lock);
+    printk("cwc:%s: post spin_lock\n", __FUNCTION__);
 
     if ( frame == 0 )
         frame = act->frame;
@@ -562,6 +572,7 @@
             goto unmap_out;
         }
 
+        printk("cwc:%s: pre pagetable delete\n", __FUNCTION__);
         /* Delete pagetable entry
          */
         if ( unlikely(__put_user(0, (unsigned long *)pl1e)))
@@ -588,6 +599,7 @@
 
         rc = 0;
         *va = virt;
+        printk("cwc:%s: post pagetable delete\n", __FUNCTION__);
     }
 
     if ( (map->ref_and_flags & (GNTMAP_device_map|GNTMAP_host_map)) == 0)
@@ -617,6 +629,7 @@
 
  unmap_out:
     (void)__put_user(rc, &uop->status);
+    printk("cwc:%s: out spin_unlock\n", __FUNCTION__);
     spin_unlock(&rd->grant_table->lock);
     put_domain(rd);
     return rc;
@@ -897,11 +910,14 @@
             ref = (map->ref_and_flags >> MAPTRACK_REF_SHIFT);
             act = &rgt->active[ref];
 
+            printk("cwc:%s: pre spin_lock\n", __FUNCTION__);
             spin_lock(&rgt->lock);
+            printk("cwc:%s: post spin_lock\n", __FUNCTION__);
 
             if ( act->frame != frame )
             {
                 spin_unlock(&rgt->lock);
+                printk("cwc:%s: not frame spin_unlock\n", __FUNCTION__);
                 continue;
             }
 
@@ -910,6 +926,7 @@
             if ( refcount == 0 )
             {
                 spin_unlock(&rgt->lock);
+                printk("cwc:%s: refcount 0 spin_unlock\n", __FUNCTION__);
                 continue;
             }
 
@@ -937,6 +954,7 @@
                 put_page(&frame_table[frame]);
             }
             spin_unlock(&rgt->lock);
+            printk("cwc:%s: spin_unlock\n", __FUNCTION__);
 
             clear_bit(GNTMAP_host_map, &map->ref_and_flags);
 
@@ -949,6 +967,7 @@
     }
     put_domain(rd);
 
+    printk("cwc:%s: out found:%d\n", __FUNCTION__, found);
     return found;
 }
 
@@ -974,13 +993,16 @@
         return 0;
     }
 
+    printk("cwc:%s: pre spin_lock\n", __FUNCTION__);
     spin_lock(&rgt->lock);
+    printk("cwc:%s: post spin_lock\n", __FUNCTION__);
 
     sha = &rgt->shared[ref];
     
     sflags = sha->flags;
     sdom   = sha->domid;
 
+    printk("cwc:%s: pre cmpxchg loop\n", __FUNCTION__);
     for ( ; ; )
     {
         target_pfn = sha->frame;
@@ -1028,10 +1050,12 @@
     }
 
     spin_unlock(&rgt->lock);
+    printk("cwc:%s: out spin_unlock 1\n", __FUNCTION__);
     return 1;
 
  fail:
     spin_unlock(&rgt->lock);
+    printk("cwc:%s: out spin_unlock 0\n", __FUNCTION__);
     return 0;
 }
 

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: blkback.c --]
[-- Type: text/x-csrc; name="blkback.c", Size: 23917 bytes --]

/******************************************************************************
 * arch/xen/drivers/blkif/backend/main.c
 * 
 * Back-end of the driver for virtual block devices. This portion of the
 * driver exports a 'unified' block-device interface that can be accessed
 * by any operating system that implements a compatible front end. A 
 * reference front-end implementation can be found in:
 *  arch/xen/drivers/blkif/frontend
 * 
 * Copyright (c) 2003-2004, Keir Fraser & Steve Hand
 * Copyright (c) 2005, Christopher Clark
 */

#include "common.h"
#include <asm-xen/evtchn.h>
#ifdef CONFIG_XEN_BLKDEV_GRANT
#include <asm-xen/xen-public/grant_table.h>
#endif

/*
 * These are rather arbitrary. They are fairly large because adjacent requests
 * pulled from a communication ring are quite likely to end up being part of
 * the same scatter/gather request at the disc.
 * 
 * ** TRY INCREASING 'MAX_PENDING_REQS' IF WRITE SPEEDS SEEM TOO LOW **
 * This will increase the chances of being able to write whole tracks.
 * 64 should be enough to keep us competitive with Linux.
 */
#define MAX_PENDING_REQS 64
#define BATCH_PER_DOMAIN 16

static unsigned long mmap_vstart;
#define MMAP_PAGES                                              \
    (MAX_PENDING_REQS * BLKIF_MAX_SEGMENTS_PER_REQUEST)
#define MMAP_VADDR(_req,_seg)                                   \
    (mmap_vstart +                                              \
     ((_req) * BLKIF_MAX_SEGMENTS_PER_REQUEST * PAGE_SIZE) +    \
     ((_seg) * PAGE_SIZE))

/*
 * Each outstanding request that we've passed to the lower device layers has a 
 * 'pending_req' allocated to it. Each buffer_head that completes decrements 
 * the pendcnt towards zero. When it hits zero, the specified domain has a 
 * response queued for it, with the saved 'id' passed back.
 */
typedef struct {
    blkif_t       *blkif;
    unsigned long  id;
    int            nr_pages;
    atomic_t       pendcnt;
    unsigned short operation;
    int            status;
} pending_req_t;

/*
 * We can't allocate pending_req's in order, since they may complete out of 
 * order. We therefore maintain an allocation ring. This ring also indicates 
 * when enough work has been passed down -- at that point the allocation ring 
 * will be empty.
 */
static pending_req_t pending_reqs[MAX_PENDING_REQS];
static unsigned char pending_ring[MAX_PENDING_REQS];
static spinlock_t pend_prod_lock = SPIN_LOCK_UNLOCKED;
/* NB. We use a different index type to differentiate from shared blk rings. */
typedef unsigned int PEND_RING_IDX;
#define MASK_PEND_IDX(_i) ((_i)&(MAX_PENDING_REQS-1))
static PEND_RING_IDX pending_prod, pending_cons;
#define NR_PENDING_REQS (MAX_PENDING_REQS - pending_prod + pending_cons)

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
static kmem_cache_t *buffer_head_cachep;
#else
static request_queue_t *plugged_queue;
static inline void flush_plugged_queue(void)
{
    request_queue_t *q = plugged_queue;
    if ( q != NULL )
    {
        if ( q->unplug_fn != NULL )
            q->unplug_fn(q);
        blk_put_queue(q);
        plugged_queue = NULL;
    }
}
#endif

#ifdef CONFIG_XEN_BLKDEV_GRANT
/* When using grant tables to map a frame for device access then the
 * handle returned must be used to unmap the frame. This is needed to
 * drop the ref count on the frame.
 */
static u16 pending_grant_handles[MMAP_PAGES];
#define pending_handle(_idx, _i) \
    (pending_grant_handles[((_idx) * BLKIF_MAX_SEGMENTS_PER_REQUEST) + (_i)])
#define BLKBACK_INVALID_HANDLE (0xFFFF)
#endif

#ifdef CONFIG_XEN_BLKDEV_TAP_BE
/*
 * If the tap driver is used, we may get pages belonging to either the tap
 * or (more likely) the real frontend.  The backend must specify which domain
 * a given page belongs to in update_va_mapping though.  For the moment, 
 * the tap rewrites the ID field of the request to contain the request index
 * and the id of the real front end domain.
 */
#define BLKTAP_COOKIE 0xbeadfeed
static inline domid_t ID_TO_DOM(unsigned long id) { return (id >> 16); }
#endif

static int do_block_io_op(blkif_t *blkif, int max_to_do);
static void dispatch_probe(blkif_t *blkif, blkif_request_t *req);
static void dispatch_rw_block_io(blkif_t *blkif, blkif_request_t *req);
static void make_response(blkif_t *blkif, unsigned long id, 
                          unsigned short op, int st);

static void fast_flush_area(int idx, int nr_pages)
{
    printk("cwc:%s:in\n", __FUNCTION__);
#ifdef CONFIG_XEN_BLKDEV_GRANT
    gnttab_op_t       aop[BLKIF_MAX_SEGMENTS_PER_REQUEST];
    unsigned int      i, invcount = 0;
    u16               handle;

    for ( i = 0; i < nr_pages; i++ )
    {
        if ( BLKBACK_INVALID_HANDLE != ( handle = pending_handle(idx, i) ) )
        {
            aop[i].u.unmap_grant_ref.host_virt_addr = MMAP_VADDR(idx, i);
            aop[i].u.unmap_grant_ref.dev_bus_addr   = 0;
            aop[i].u.unmap_grant_ref.handle         = handle;
            pending_handle(idx, i) = BLKBACK_INVALID_HANDLE;
            invcount++;
        }
    }
    if ( unlikely(HYPERVISOR_grant_table_op(
                    GNTTABOP_unmap_grant_ref, aop, invcount)))
        BUG();
#else

    multicall_entry_t mcl[BLKIF_MAX_SEGMENTS_PER_REQUEST];
    int               i;

    for ( i = 0; i < nr_pages; i++ )
    {
        mcl[i].op = __HYPERVISOR_update_va_mapping;
        mcl[i].args[0] = MMAP_VADDR(idx, i);
        mcl[i].args[1] = 0;
        mcl[i].args[2] = 0;
    }

    mcl[nr_pages-1].args[2] = UVMF_TLB_FLUSH|UVMF_ALL;
    if ( unlikely(HYPERVISOR_multicall(mcl, nr_pages) != 0) )
        BUG();
#endif
    printk("cwc:%s:out\n", __FUNCTION__);
}


/******************************************************************
 * BLOCK-DEVICE SCHEDULER LIST MAINTENANCE
 */

static struct list_head blkio_schedule_list;
static spinlock_t blkio_schedule_list_lock;

static int __on_blkdev_list(blkif_t *blkif)
{
    return blkif->blkdev_list.next != NULL;
}

static void remove_from_blkdev_list(blkif_t *blkif)
{
    unsigned long flags;
    if ( !__on_blkdev_list(blkif) ) return;
    spin_lock_irqsave(&blkio_schedule_list_lock, flags);
    if ( __on_blkdev_list(blkif) )
    {
        list_del(&blkif->blkdev_list);
        blkif->blkdev_list.next = NULL;
        blkif_put(blkif);
    }
    spin_unlock_irqrestore(&blkio_schedule_list_lock, flags);
}

static void add_to_blkdev_list_tail(blkif_t *blkif)
{
    unsigned long flags;
    if ( __on_blkdev_list(blkif) ) return;
    spin_lock_irqsave(&blkio_schedule_list_lock, flags);
    if ( !__on_blkdev_list(blkif) && (blkif->status == CONNECTED) )
    {
        list_add_tail(&blkif->blkdev_list, &blkio_schedule_list);
        blkif_get(blkif);
    }
    spin_unlock_irqrestore(&blkio_schedule_list_lock, flags);
}


/******************************************************************
 * SCHEDULER FUNCTIONS
 */

static DECLARE_WAIT_QUEUE_HEAD(blkio_schedule_wait);

static int blkio_schedule(void *arg)
{
    DECLARE_WAITQUEUE(wq, current);

    blkif_t          *blkif;
    struct list_head *ent;

    daemonize(
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
        "xenblkd"
#endif
        );

    for ( ; ; )
    {
        /* Wait for work to do. */
        add_wait_queue(&blkio_schedule_wait, &wq);
        set_current_state(TASK_INTERRUPTIBLE);
        if ( (NR_PENDING_REQS == MAX_PENDING_REQS) || 
             list_empty(&blkio_schedule_list) )
            schedule();
        __set_current_state(TASK_RUNNING);
        remove_wait_queue(&blkio_schedule_wait, &wq);

        /* Queue up a batch of requests. */
        while ( (NR_PENDING_REQS < MAX_PENDING_REQS) &&
                !list_empty(&blkio_schedule_list) )
        {
            ent = blkio_schedule_list.next;
            blkif = list_entry(ent, blkif_t, blkdev_list);
            blkif_get(blkif);
            remove_from_blkdev_list(blkif);
            if ( do_block_io_op(blkif, BATCH_PER_DOMAIN) )
                add_to_blkdev_list_tail(blkif);
            blkif_put(blkif);
        }

        /* Push the batch through to disc. */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
        run_task_queue(&tq_disk);
#else
        flush_plugged_queue();
#endif
    }
}

static void maybe_trigger_blkio_schedule(void)
{
    /*
     * Needed so that two processes, who together make the following predicate
     * true, don't both read stale values and evaluate the predicate
     * incorrectly. Incredibly unlikely to stall the scheduler on x86, but...
     */
    smp_mb();

    if ( (NR_PENDING_REQS < (MAX_PENDING_REQS/2)) &&
         !list_empty(&blkio_schedule_list) )
        wake_up(&blkio_schedule_wait);
}



/******************************************************************
 * COMPLETION CALLBACK -- Called as bh->b_end_io()
 */

static void __end_block_io_op(pending_req_t *pending_req, int uptodate)
{
    unsigned long flags;

    /* An error fails the entire request. */
    if ( !uptodate )
    {
        DPRINTK("Buffer not up-to-date at end of operation\n");
        pending_req->status = BLKIF_RSP_ERROR;
    }

    if ( atomic_dec_and_test(&pending_req->pendcnt) )
    {
        int pending_idx = pending_req - pending_reqs;
        fast_flush_area(pending_idx, pending_req->nr_pages);
        make_response(pending_req->blkif, pending_req->id,
                      pending_req->operation, pending_req->status);
        blkif_put(pending_req->blkif);
        spin_lock_irqsave(&pend_prod_lock, flags);
        pending_ring[MASK_PEND_IDX(pending_prod++)] = pending_idx;
        spin_unlock_irqrestore(&pend_prod_lock, flags);
        maybe_trigger_blkio_schedule();
    }
}

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
static void end_block_io_op(struct buffer_head *bh, int uptodate)
{
    __end_block_io_op(bh->b_private, uptodate);
    kmem_cache_free(buffer_head_cachep, bh);
}
#else
static int end_block_io_op(struct bio *bio, unsigned int done, int error)
{
    if ( done || error )
        __end_block_io_op(bio->bi_private, (done && !error));
    bio_put(bio);
    return error;
}
#endif


/******************************************************************************
 * NOTIFICATION FROM GUEST OS.
 */

irqreturn_t blkif_be_int(int irq, void *dev_id, struct pt_regs *regs)
{
    blkif_t *blkif = dev_id;
    add_to_blkdev_list_tail(blkif);
    maybe_trigger_blkio_schedule();
    return IRQ_HANDLED;
}



/******************************************************************
 * DOWNWARD CALLS -- These interface with the block-device layer proper.
 */

static int do_block_io_op(blkif_t *blkif, int max_to_do)
{
    blkif_back_ring_t *blk_ring = &blkif->blk_ring;
    blkif_request_t *req;
    RING_IDX i, rp;
    int more_to_do = 0;

    rp = blk_ring->sring->req_prod;
    rmb(); /* Ensure we see queued requests up to 'rp'. */

    for ( i = blk_ring->req_cons; 
         (i != rp) && !RING_REQUEST_CONS_OVERFLOW(blk_ring, i);
          i++ )
    {
        if ( (max_to_do-- == 0) || (NR_PENDING_REQS == MAX_PENDING_REQS) )
        {
            more_to_do = 1;
            break;
        }
        
        req = RING_GET_REQUEST(blk_ring, i);
        switch ( req->operation )
        {
        case BLKIF_OP_READ:
        case BLKIF_OP_WRITE:
            dispatch_rw_block_io(blkif, req);
            break;

        case BLKIF_OP_PROBE:
            dispatch_probe(blkif, req);
            break;

        default:
            DPRINTK("error: unknown block io operation [%d]\n",
                    req->operation);
            make_response(blkif, req->id, req->operation, BLKIF_RSP_ERROR);
            break;
        }
    }

    blk_ring->req_cons = i;
    return more_to_do;
}

static void dispatch_probe(blkif_t *blkif, blkif_request_t *req)
{
    int rsp = BLKIF_RSP_ERROR;
    int pending_idx = pending_ring[MASK_PEND_IDX(pending_cons)];
    printk("cwc:%s:in id:%lu\n", __FUNCTION__, req->id);

    /* We expect one buffer only. */
    if ( unlikely(req->nr_segments != 1) )
        goto out;

    /* Make sure the buffer is page-sized. */
    if ( (blkif_first_sect(req->frame_and_sects[0]) != 0) ||
         (blkif_last_sect(req->frame_and_sects[0]) != 7) )
        goto out;

    printk("cwc:%s:mid\n", __FUNCTION__);
#ifdef CONFIG_XEN_BLKDEV_GRANT
    {
        gnttab_op_t     op;

        op.u.map_grant_ref.host_virt_addr = MMAP_VADDR(pending_idx, 0);
        op.u.map_grant_ref.flags = GNTMAP_host_map;
        op.u.map_grant_ref.ref = blkif_gref_from_fas(req->frame_and_sects[0]);
        op.u.map_grant_ref.dom = blkif->domid;

        if ( unlikely(HYPERVISOR_grant_table_op(
                        GNTTABOP_map_grant_ref, &op, 1)))
            BUG();

        if ( op.u.map_grant_ref.dev_bus_addr == 0 )
            goto out;

        pending_handle(pending_idx, 0) = op.u.map_grant_ref.handle;
    }
#else /* else CONFIG_XEN_BLKDEV_GRANT */

#ifdef CONFIG_XEN_BLKDEV_TAP_BE
    /* Grab the real frontend out of the probe message. */
    if (req->frame_and_sects[1] == BLKTAP_COOKIE) 
        blkif->is_blktap = 1;
#endif


#ifdef CONFIG_XEN_BLKDEV_TAP_BE
    if ( HYPERVISOR_update_va_mapping_otherdomain(
        MMAP_VADDR(pending_idx, 0),
        (pte_t) { (req->frame_and_sects[0] & PAGE_MASK) | __PAGE_KERNEL },
        0, (blkif->is_blktap ? ID_TO_DOM(req->id) : blkif->domid) ) )
        
        goto out;
#else
    if ( HYPERVISOR_update_va_mapping_otherdomain(
        MMAP_VADDR(pending_idx, 0),
        (pte_t) { (req->frame_and_sects[0] & PAGE_MASK) | __PAGE_KERNEL },
        0, blkif->domid) ) 
        
        goto out;
#endif
#endif /* endif CONFIG_XEN_BLKDEV_GRANT */
   
    printk("cwc:%s:vbd_probe\n", __FUNCTION__);
    rsp = vbd_probe(blkif, (vdisk_t *)MMAP_VADDR(pending_idx, 0), 
                    PAGE_SIZE / sizeof(vdisk_t));

 out:
    fast_flush_area(pending_idx, 1);
    make_response(blkif, req->id, req->operation, rsp);
    printk("cwc:%s:out response:%d\n", __FUNCTION__, rsp);
}

static void dispatch_rw_block_io(blkif_t *blkif, blkif_request_t *req)
{
    extern void ll_rw_block(int rw, int nr, struct buffer_head * bhs[]); 
    int operation = (req->operation == BLKIF_OP_WRITE) ? WRITE : READ;
    unsigned long fas = 0;
    int i, pending_idx = pending_ring[MASK_PEND_IDX(pending_cons)];
    pending_req_t *pending_req;
#ifdef CONFIG_XEN_BLKDEV_GRANT
    gnttab_op_t       aop[BLKIF_MAX_SEGMENTS_PER_REQUEST];
#else
    unsigned long remap_prot;
    multicall_entry_t mcl[BLKIF_MAX_SEGMENTS_PER_REQUEST];
#endif
    struct phys_req preq;
    struct { 
        unsigned long buf; unsigned int nsec;
    } seg[BLKIF_MAX_SEGMENTS_PER_REQUEST];
    unsigned int nseg;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
    struct buffer_head *bh;
#else
    struct bio *bio = NULL, *biolist[BLKIF_MAX_SEGMENTS_PER_REQUEST];
    int nbio = 0;
    request_queue_t *q;
#endif

    /* Check that number of segments is sane. */
    nseg = req->nr_segments;
    printk("cwc:%s:in nsegs:%u\n", __FUNCTION__, nseg);
    if ( unlikely(nseg == 0) || 
         unlikely(nseg > BLKIF_MAX_SEGMENTS_PER_REQUEST) )
    {
        DPRINTK("Bad number of segments in request (%d)\n", nseg);
        goto bad_descriptor;
    }

    preq.dev           = req->device;
    preq.sector_number = req->sector_number;
    preq.nr_sects      = 0;

#ifdef CONFIG_XEN_BLKDEV_GRANT
    for ( i = 0; i < nseg; i++ )
    {
        fas         = req->frame_and_sects[i];
        seg[i].nsec = blkif_last_sect(fas) - blkif_first_sect(fas) + 1;

        if ( seg[i].nsec <= 0 )
            goto bad_descriptor;
        preq.nr_sects += seg[i].nsec;

        aop[i].u.map_grant_ref.host_virt_addr = MMAP_VADDR(pending_idx, i);

        aop[i].u.map_grant_ref.dom = blkif->domid;
        aop[i].u.map_grant_ref.ref = blkif_gref_from_fas(fas);
        aop[i].u.map_grant_ref.flags = ( GNTMAP_host_map   |
                                       ( ( operation == READ ) ?
                                             0 : GNTMAP_readonly ) );
    }

    if ( unlikely(HYPERVISOR_grant_table_op(
                    GNTTABOP_map_grant_ref, aop, nseg)))
        BUG();
    printk("cwc:%s:post map\n", __FUNCTION__);

    for ( i = 0; i < nseg; i++ )
    {
        if ( unlikely(aop[i].u.map_grant_ref.dev_bus_addr == 0) )
        {
            DPRINTK("invalid buffer -- could not remap it\n");
            fast_flush_area(pending_idx, nseg);
            goto bad_descriptor;
        }

        phys_to_machine_mapping[__pa(MMAP_VADDR(pending_idx, i))>>PAGE_SHIFT] =
            FOREIGN_FRAME(aop[i].u.map_grant_ref.dev_bus_addr);

        pending_handle(pending_idx, i) = aop[i].u.map_grant_ref.handle;
    }
#endif
    printk("cwc:%s:pre populate segs\n", __FUNCTION__);

    for ( i = 0; i < nseg; i++ )
    {
#ifdef CONFIG_XEN_BLKDEV_GRANT
        seg[i].buf  = (aop[i].u.map_grant_ref.dev_bus_addr << PAGE_SHIFT) |
                      (blkif_first_sect(fas) << 9);
#else
        fas          = req->frame_and_sects[i];
        seg[i].buf  = (fas & PAGE_MASK) | (blkif_first_sect(fas) << 9);
        seg[i].nsec = blkif_last_sect(fas) - blkif_first_sect(fas) + 1;
        if ( seg[i].nsec <= 0 )
            goto bad_descriptor;
        preq.nr_sects += seg[i].nsec;
#endif
     	printk("cwc:%s: buf:%lx populated %u sects\n",
               __FUNCTION__, seg[i].buf, seg[i].nsec);
    }

    if ( vbd_translate(&preq, blkif, operation) != 0 )
    {
        DPRINTK("access denied: %s of [%llu,%llu] on dev=%04x\n", 
                operation == READ ? "read" : "write", preq.sector_number,
                preq.sector_number + preq.nr_sects, preq.dev); 
        goto bad_descriptor;
    }

#ifndef CONFIG_XEN_BLKDEV_GRANT
    if ( operation == READ )
        remap_prot = _PAGE_PRESENT|_PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_RW;
    else
        remap_prot = _PAGE_PRESENT|_PAGE_DIRTY|_PAGE_ACCESSED;

    for ( i = 0; i < nseg; i++ )
    {
        mcl[i].op = __HYPERVISOR_update_va_mapping_otherdomain;
        mcl[i].args[0] = MMAP_VADDR(pending_idx, i);
        mcl[i].args[1] = (seg[i].buf & PAGE_MASK) | remap_prot;
        mcl[i].args[2] = 0;
        mcl[i].args[3] = blkif->domid;
#ifdef CONFIG_XEN_BLKDEV_TAP_BE
        if ( blkif->is_blktap )
            mcl[i].args[3] = ID_TO_DOM(req->id);
#endif
        phys_to_machine_mapping[__pa(MMAP_VADDR(pending_idx, i))>>PAGE_SHIFT] =
            FOREIGN_FRAME(seg[i].buf >> PAGE_SHIFT);
    }

    BUG_ON(HYPERVISOR_multicall(mcl, nseg) != 0);

    for ( i = 0; i < nseg; i++ )
    {
        if ( unlikely(mcl[i].args[5] != 0) )
        {
            DPRINTK("invalid buffer -- could not remap it\n");
            fast_flush_area(pending_idx, nseg);
            goto bad_descriptor;
        }
    }
#endif /* end ifndef CONFIG_XEN_BLKDEV_GRANT */

    pending_req = &pending_reqs[pending_idx];
    pending_req->blkif     = blkif;
    pending_req->id        = req->id;
    pending_req->operation = operation;
    pending_req->status    = BLKIF_RSP_OKAY;
    pending_req->nr_pages  = nseg;

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)

    atomic_set(&pending_req->pendcnt, nseg);
    pending_cons++;
    blkif_get(blkif);

    for ( i = 0; i < nseg; i++ )
    {
        bh = kmem_cache_alloc(buffer_head_cachep, GFP_KERNEL);
        if ( unlikely(bh == NULL) )
        {
            __end_block_io_op(pending_req, 0);
            continue;
        }

        memset(bh, 0, sizeof (struct buffer_head));

        init_waitqueue_head(&bh->b_wait);
        bh->b_size          = seg[i].nsec << 9;
        bh->b_dev           = preq.dev;
        bh->b_rdev          = preq.dev;
        bh->b_rsector       = (unsigned long)preq.sector_number;
        bh->b_data          = (char *)MMAP_VADDR(pending_idx, i) +
            (seg[i].buf & ~PAGE_MASK);
        bh->b_page          = virt_to_page(MMAP_VADDR(pending_idx, i));
        bh->b_end_io        = end_block_io_op;
        bh->b_private       = pending_req;

        bh->b_state = (1 << BH_Mapped) | (1 << BH_Lock) | 
            (1 << BH_Req) | (1 << BH_Launder);
        if ( operation == WRITE )
            bh->b_state |= (1 << BH_JBD) | (1 << BH_Req) | (1 << BH_Uptodate);

        atomic_set(&bh->b_count, 1);

        /* Dispatch a single request. We'll flush it to disc later. */
        generic_make_request(operation, bh);

        preq.sector_number += seg[i].nsec;
    }

#else

    for ( i = 0; i < nseg; i++ )
    {
        while ( (bio == NULL) ||
                (bio_add_page(bio,
                              virt_to_page(MMAP_VADDR(pending_idx, i)),
                              seg[i].nsec << 9,
                              seg[i].buf & ~PAGE_MASK) == 0) )
        {
            bio = biolist[nbio++] = bio_alloc(GFP_KERNEL, nseg-i);
            if ( unlikely(bio == NULL) )
            {
                for ( i = 0; i < (nbio-1); i++ )
                    bio_put(biolist[i]);
                fast_flush_area(pending_idx, nseg);
                goto bad_descriptor;
            }
                
            bio->bi_bdev    = preq.bdev;
            bio->bi_private = pending_req;
            bio->bi_end_io  = end_block_io_op;
            bio->bi_sector  = preq.sector_number;
        }

        preq.sector_number += seg[i].nsec;
    }
    printk("cwc:%s: post bio_add_page\n", __FUNCTION__);

    if ( (q = bdev_get_queue(bio->bi_bdev)) != plugged_queue )
    {
        flush_plugged_queue();
        blk_get_queue(q);
        plugged_queue = q;
    }

    atomic_set(&pending_req->pendcnt, nbio);
    pending_cons++;
    blkif_get(blkif);

    for ( i = 0; i < nbio; i++ )
        submit_bio(operation, biolist[i]);

#endif
    printk("cwc:%s: %d bios submitted\n", __FUNCTION__, nbio);

    return;

 bad_descriptor:
    make_response(blkif, req->id, req->operation, BLKIF_RSP_ERROR);
    printk("cwc:%s: %d bad descriptor\n", __FUNCTION__);
} 



/******************************************************************
 * MISCELLANEOUS SETUP / TEARDOWN / DEBUGGING
 */


static void make_response(blkif_t *blkif, unsigned long id, 
                          unsigned short op, int st)
{
    blkif_response_t *resp;
    unsigned long     flags;
    blkif_back_ring_t *blk_ring = &blkif->blk_ring;

    /* Place on the response ring for the relevant domain. */ 
    spin_lock_irqsave(&blkif->blk_ring_lock, flags);
    resp = RING_GET_RESPONSE(blk_ring, blk_ring->rsp_prod_pvt);
    resp->id        = id;
    resp->operation = op;
    resp->status    = st;
    wmb(); /* Ensure other side can see the response fields. */
    blk_ring->rsp_prod_pvt++;
    RING_PUSH_RESPONSES(blk_ring);
    spin_unlock_irqrestore(&blkif->blk_ring_lock, flags);

    /* Kick the relevant domain. */
    notify_via_evtchn(blkif->evtchn);
}

void blkif_deschedule(blkif_t *blkif)
{
    remove_from_blkdev_list(blkif);
}

static int __init blkif_init(void)
{
    int i;

    if ( !(xen_start_info.flags & SIF_INITDOMAIN) &&
         !(xen_start_info.flags & SIF_BLK_BE_DOMAIN) )
        return 0;

    blkif_interface_init();

    if ( (mmap_vstart = allocate_empty_lowmem_region(MMAP_PAGES)) == 0 )
        BUG();

    pending_cons = 0;
    pending_prod = MAX_PENDING_REQS;
    memset(pending_reqs, 0, sizeof(pending_reqs));
    for ( i = 0; i < MAX_PENDING_REQS; i++ )
        pending_ring[i] = i;
    
    spin_lock_init(&blkio_schedule_list_lock);
    INIT_LIST_HEAD(&blkio_schedule_list);

    if ( kernel_thread(blkio_schedule, 0, CLONE_FS | CLONE_FILES) < 0 )
        BUG();

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
    buffer_head_cachep = kmem_cache_create(
        "buffer_head_cache", sizeof(struct buffer_head),
        0, SLAB_HWCACHE_ALIGN, NULL, NULL);
#endif

    blkif_ctrlif_init();
    
#ifdef CONFIG_XEN_BLKDEV_GRANT
    memset( pending_grant_handles,  BLKBACK_INVALID_HANDLE, MMAP_PAGES );
    printk(KERN_ALERT "Blkif backend is using grant tables.\n");
#endif

#ifdef CONFIG_XEN_BLKDEV_TAP_BE
    printk(KERN_ALERT "NOTE: Blkif backend is running with tap support on!\n");
#endif

    return 0;
}

__initcall(blkif_init);

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: blkfront.c --]
[-- Type: text/x-csrc; name="blkfront.c", Size: 43478 bytes --]

/******************************************************************************
 * blkfront.c
 * 
 * XenLinux virtual block-device driver.
 * 
 * Copyright (c) 2003-2004, Keir Fraser & Steve Hand
 * Modifications by Mark A. Williamson are (c) Intel Research Cambridge
 * Copyright (c) 2004, Christian Limpach
 * Copyright (c) 2004, Andrew Warfield
 * Copyright (c) 2005, Christopher Clark
 * 
 * This file may be distributed separately from the Linux kernel, or
 * incorporated into other software packages, subject to the following license:
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this source file (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use, copy, modify,
 * merge, publish, distribute, sublicense, and/or sell copies of the Software,
 * and to permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 */

#if 1
#define ASSERT(_p) \
    if ( !(_p) ) { printk("Assertion '%s' failed, line %d, file %s", #_p , \
    __LINE__, __FILE__); *(int*)0=0; }
#else
#define ASSERT(_p)
#endif

#include <linux/version.h>

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
#include "block.h"
#else
#include "common.h"
#include <linux/blk.h>
#include <linux/tqueue.h>
#endif

#include <linux/cdrom.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <scsi/scsi.h>
#include <asm-xen/ctrl_if.h>
#include <asm-xen/evtchn.h>
#ifdef CONFIG_XEN_BLKDEV_GRANT
#include <asm-xen/xen-public/grant_table.h>
#include <asm-xen/gnttab.h>
#endif

typedef unsigned char byte; /* from linux/ide.h */

/* Control whether runtime update of vbds is enabled. */
#define ENABLE_VBD_UPDATE 1

#if ENABLE_VBD_UPDATE
static void vbd_update(void);
#else
static void vbd_update(void){};
#endif

#define BLKIF_STATE_CLOSED       0
#define BLKIF_STATE_DISCONNECTED 1
#define BLKIF_STATE_CONNECTED    2

#define WPRINTK(fmt, args...) printk(KERN_WARNING "xen_blk: " fmt, ##args)

static int blkif_handle = 0;
static unsigned int blkif_state = BLKIF_STATE_CLOSED;
static unsigned int blkif_evtchn = 0;
static unsigned int blkif_irq = 0;

static int blkif_control_rsp_valid;
static blkif_response_t blkif_control_rsp;

static blkif_front_ring_t blk_ring;

#define BLK_RING_SIZE __RING_SIZE((blkif_sring_t *)0, PAGE_SIZE)

#ifdef CONFIG_XEN_BLKDEV_GRANT
static domid_t rdomid = 0;
static grant_ref_t gref_head, gref_terminal;
#define MAXIMUM_OUTSTANDING_BLOCK_REQS \
    (BLKIF_MAX_SEGMENTS_PER_REQUEST * BLKIF_RING_SIZE)
#endif

unsigned long rec_ring_free;
blkif_request_t rec_ring[BLK_RING_SIZE];

static int recovery = 0;           /* "Recovery in progress" flag.  Protected
                                    * by the blkif_io_lock */

static void kick_pending_request_queues(void);

int __init xlblk_init(void);

void blkif_completion( blkif_request_t *req );

static inline int GET_ID_FROM_FREELIST( void )
{
    unsigned long free = rec_ring_free;

    BUG_ON(free > BLK_RING_SIZE);

    rec_ring_free = rec_ring[free].id;

    rec_ring[free].id = 0x0fffffee; /* debug */

    return free;
}

static inline void ADD_ID_TO_FREELIST( unsigned long id )
{
    rec_ring[id].id = rec_ring_free;
    rec_ring_free = id;
}


/************************  COMMON CODE  (inlined)  ************************/

/* Kernel-specific definitions used in the common code */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
#define DISABLE_SCATTERGATHER() 
#else
static int sg_operation = -1;
#define DISABLE_SCATTERGATHER() (sg_operation = -1)
#endif

static inline void translate_req_to_pfn(blkif_request_t *xreq,
                                        blkif_request_t *req)
{
    int i;

    xreq->operation     = req->operation;
    xreq->nr_segments   = req->nr_segments;
    xreq->device        = req->device;
    /* preserve id */
    xreq->sector_number = req->sector_number;

    for ( i = 0; i < req->nr_segments; i++ )
#ifdef CONFIG_XEN_BLKDEV_GRANT
        xreq->frame_and_sects[i] = req->frame_and_sects[i];
#else
        xreq->frame_and_sects[i] = machine_to_phys(req->frame_and_sects[i]);
#endif
}

static inline void translate_req_to_mfn(blkif_request_t *xreq,
                                        blkif_request_t *req)
{
    int i;

    xreq->operation     = req->operation;
    xreq->nr_segments   = req->nr_segments;
    xreq->device        = req->device;
    xreq->id            = req->id;   /* copy id (unlike above) */
    xreq->sector_number = req->sector_number;

    for ( i = 0; i < req->nr_segments; i++ )
#ifdef CONFIG_XEN_BLKDEV_GRANT
        xreq->frame_and_sects[i] = req->frame_and_sects[i];
#else
        xreq->frame_and_sects[i] = phys_to_machine(req->frame_and_sects[i]);
#endif
}


static inline void flush_requests(void)
{
    DISABLE_SCATTERGATHER();
    RING_PUSH_REQUESTS(&blk_ring);
    notify_via_evtchn(blkif_evtchn);
}




/**************************  KERNEL VERSION 2.6  **************************/

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)

module_init(xlblk_init);

#if ENABLE_VBD_UPDATE
static void update_vbds_task(void *unused)
{ 
    xlvbd_update_vbds();
}

static void vbd_update(void)
{
    static DECLARE_WORK(update_tq, update_vbds_task, NULL);
    schedule_work(&update_tq);
}
#endif /* ENABLE_VBD_UPDATE */

static void kick_pending_request_queues(void)
{

    if ( (xlbd_blk_queue != NULL) &&
         test_bit(QUEUE_FLAG_STOPPED, &xlbd_blk_queue->queue_flags) )
    {
        blk_start_queue(xlbd_blk_queue);
        /* XXXcl call to request_fn should not be needed but
         * we get stuck without...  needs investigating
         */
        xlbd_blk_queue->request_fn(xlbd_blk_queue);
    }

}


int blkif_open(struct inode *inode, struct file *filep)
{
    struct gendisk *gd = inode->i_bdev->bd_disk;
    struct xlbd_disk_info *di = (struct xlbd_disk_info *)gd->private_data;
    printk("cwc:%s: called\n", __FUNCTION__);

    /* Update of usage count is protected by per-device semaphore. */
    di->mi->usage++;
    
    return 0;
}


int blkif_release(struct inode *inode, struct file *filep)
{
    struct gendisk *gd = inode->i_bdev->bd_disk;
    struct xlbd_disk_info *di = (struct xlbd_disk_info *)gd->private_data;
    printk("cwc:%s: called\n", __FUNCTION__);

    /*
     * When usage drops to zero it may allow more VBD updates to occur.
     * Update of usage count is protected by a per-device semaphore.
     */
    if (--di->mi->usage == 0) {
        vbd_update();
    }

    return 0;
}


int blkif_ioctl(struct inode *inode, struct file *filep,
                unsigned command, unsigned long argument)
{
    int i;
    printk("cwc:%s: called\n", __FUNCTION__);

    DPRINTK_IOCTL("command: 0x%x, argument: 0x%lx, dev: 0x%04x\n",
                  command, (long)argument, inode->i_rdev); 
  
    switch (command) {

    case HDIO_GETGEO:
        /* return ENOSYS to use defaults */
        return -ENOSYS;

    case CDROMMULTISESSION:
        DPRINTK("FIXME: support multisession CDs later\n");
        for ( i = 0; i < sizeof(struct cdrom_multisession); i++ )
            if ( put_user(0, (byte *)(argument + i)) ) return -EFAULT;
        return 0;

    default:
        printk(KERN_ALERT "ioctl %08x not supported by Xen blkdev\n",
               command);
        return -ENOSYS;
    }

    return 0;
}


/*
 * blkif_queue_request
 *
 * request block io 
 * 
 * id: for guest use only.
 * operation: BLKIF_OP_{READ,WRITE,PROBE}
 * buffer: buffer to read/write into. this should be a
 *   virtual address in the guest os.
 */
static int blkif_queue_request(struct request *req)
{
    struct xlbd_disk_info *di =
        (struct xlbd_disk_info *)req->rq_disk->private_data;
    unsigned long buffer_ma;
    blkif_request_t *ring_req;
    struct bio *bio;
    struct bio_vec *bvec;
    int idx;
    unsigned long id;
    unsigned int fsect, lsect;
#ifdef CONFIG_XEN_BLKDEV_GRANT
    int ref;
#endif
    printk("cwc:%s: in blkif_state:%u\n", __FUNCTION__, blkif_state);

    if ( unlikely(blkif_state != BLKIF_STATE_CONNECTED) )
        return 1;

    /* Fill out a communications ring structure. */
    ring_req = RING_GET_REQUEST(&blk_ring, blk_ring.req_prod_pvt);
    id = GET_ID_FROM_FREELIST();
    rec_ring[id].id = (unsigned long) req;

    ring_req->id = id;
    ring_req->operation = rq_data_dir(req) ? BLKIF_OP_WRITE :
        BLKIF_OP_READ;
    ring_req->sector_number = (blkif_sector_t)req->sector;
    ring_req->device = di->xd_device;

    ring_req->nr_segments = 0;
    rq_for_each_bio(bio, req)
    {
        bio_for_each_segment(bvec, bio, idx)
        {
            if ( ring_req->nr_segments == BLKIF_MAX_SEGMENTS_PER_REQUEST )
                BUG();
            buffer_ma = page_to_phys(bvec->bv_page);
            fsect = bvec->bv_offset >> 9;
            lsect = fsect + (bvec->bv_len >> 9) - 1;
#ifdef CONFIG_XEN_BLKDEV_GRANT
            /* install a grant reference. */
            ref = gnttab_claim_grant_reference(&gref_head, gref_terminal);
            ASSERT( ref != -ENOSPC );

            gnttab_grant_foreign_access_ref(
                        ref,
                        rdomid,
                        buffer_ma >> PAGE_SHIFT,
                        rq_data_dir(req) );

            ring_req->frame_and_sects[ring_req->nr_segments++] =
                (((u32) ref) << 16) | (fsect << 3) | lsect;
#else
            ring_req->frame_and_sects[ring_req->nr_segments++] =
                buffer_ma | (fsect << 3) | lsect;
#endif
        }
    }

    blk_ring.req_prod_pvt++;
    
    /* Keep a private copy so we can reissue requests when recovering. */
    translate_req_to_pfn(&rec_ring[id], ring_req);

    printk("cwc:%s: out\n", __FUNCTION__);
    return 0;
}


/*
 * do_blkif_request
 *  read a block; request is in a request queue
 */
void do_blkif_request(request_queue_t *rq)
{
    struct request *req;
    int queued;
    printk("cwc:%s: called\n", __FUNCTION__);

    DPRINTK("Entered do_blkif_request\n"); 

    queued = 0;

    while ((req = elv_next_request(rq)) != NULL) {
        if (!blk_fs_request(req)) {
            end_request(req, 0);
            continue;
        }

        if ( RING_FULL(&blk_ring) )
        {
            blk_stop_queue(rq);
            break;
        }
        DPRINTK("do_blk_req %p: cmd %p, sec %lx, (%u/%li) buffer:%p [%s]\n",
                req, req->cmd, req->sector, req->current_nr_sectors,
                req->nr_sectors, req->buffer,
                rq_data_dir(req) ? "write" : "read");
        blkdev_dequeue_request(req);
        if (blkif_queue_request(req)) {
            blk_stop_queue(rq);
            break;
        }
        queued++;
    }

    if (queued != 0)
        flush_requests();
}


static irqreturn_t blkif_int(int irq, void *dev_id, struct pt_regs *ptregs)
{
    struct request *req;
    blkif_response_t *bret;
    RING_IDX i, rp;
    unsigned long flags; 
    
    printk("cwc:%s: pre spin_lock_irqsave\n", __FUNCTION__);
    spin_lock_irqsave(&blkif_io_lock, flags);     
    printk("cwc:%s: post spin_lock_irqsave\n", __FUNCTION__);

    if ( unlikely(blkif_state == BLKIF_STATE_CLOSED) || 
         unlikely(recovery) )
    {
        spin_unlock_irqrestore(&blkif_io_lock, flags);
        printk("cwc:%s: spin_unlock_irqsave\n", __FUNCTION__);
        return IRQ_HANDLED;
    }
    
    rp = blk_ring.sring->rsp_prod;
    rmb(); /* Ensure we see queued responses up to 'rp'. */

    for ( i = blk_ring.rsp_cons; i != rp; i++ )
    {
        unsigned long id;

        bret = RING_GET_RESPONSE(&blk_ring, i);
        id = bret->id;
        req = (struct request *)rec_ring[id].id;
        printk("cwc:%s: blkif_completion call id %lu\n", __FUNCTION__, id);
        blkif_completion( &rec_ring[id] );

        ADD_ID_TO_FREELIST(id); /* overwrites req */

        switch ( bret->operation )
        {
        case BLKIF_OP_READ:
        case BLKIF_OP_WRITE:
            if ( unlikely(bret->status != BLKIF_RSP_OKAY) )
                DPRINTK("Bad return from blkdev data request: %x\n",
                        bret->status);
     
            if ( unlikely(end_that_request_first
                          (req, 
                           (bret->status == BLKIF_RSP_OKAY),
                           req->hard_nr_sectors)) )
                BUG();
            end_that_request_last(req);

            break;
        case BLKIF_OP_PROBE:
            memcpy(&blkif_control_rsp, bret, sizeof(*bret));
            blkif_control_rsp_valid = 1;
            break;
        default:
            BUG();
        }
    }
    printk("cwc:%s: post loop\n", __FUNCTION__);

    blk_ring.rsp_cons = i;
    
    kick_pending_request_queues();

    spin_unlock_irqrestore(&blkif_io_lock, flags);
    printk("cwc:%s: out unlock_irq_restore\n", __FUNCTION__);

    return IRQ_HANDLED;
}

#else
/**************************  KERNEL VERSION 2.4  **************************/

static kdev_t        sg_dev;
static unsigned long sg_next_sect;

/*
 * Request queues with outstanding work, but ring is currently full.
 * We need no special lock here, as we always access this with the
 * blkif_io_lock held. We only need a small maximum list.
 */
#define MAX_PENDING 8
static request_queue_t *pending_queues[MAX_PENDING];
static int nr_pending;


#define blkif_io_lock io_request_lock

/*============================================================================*/
#if ENABLE_VBD_UPDATE

/*
 * blkif_update_int/update-vbds_task - handle VBD update events.
 *  Schedule a task for keventd to run, which will update the VBDs and perform 
 *  the corresponding updates to our view of VBD state.
 */
static void update_vbds_task(void *unused)
{ 
    xlvbd_update_vbds();
}

static void vbd_update(void)
{
    static struct tq_struct update_tq;
    update_tq.routine = update_vbds_task;
    schedule_task(&update_tq);
}

#endif /* ENABLE_VBD_UPDATE */
/*============================================================================*/

static void kick_pending_request_queues(void)
{
    /* We kick pending request queues if the ring is reasonably empty. */
    if ( (nr_pending != 0) && 
         (RING_PENDING_REQUESTS(&blk_ring) < (BLK_RING_SIZE >> 1)) )
    {
        /* Attempt to drain the queue, but bail if the ring becomes full. */
        while ( (nr_pending != 0) && !RING_FULL(&blk_ring) )
            do_blkif_request(pending_queues[--nr_pending]);
    }
}

int blkif_open(struct inode *inode, struct file *filep)
{
    short xldev = inode->i_rdev; 
    struct gendisk *gd = get_gendisk(xldev);
    xl_disk_t *disk = xldev_to_xldisk(inode->i_rdev);
    short minor = MINOR(xldev); 

    if ( gd->part[minor].nr_sects == 0 )
    { 
        /*
         * Device either doesn't exist, or has zero capacity; we use a few
         * cheesy heuristics to return the relevant error code
         */
        if ( (gd->sizes[minor >> gd->minor_shift] != 0) ||
             ((minor & (gd->max_p - 1)) != 0) )
        { 
            /*
             * We have a real device, but no such partition, or we just have a
             * partition number so guess this is the problem.
             */
            return -ENXIO;     /* no such device or address */
        }
        else if ( gd->flags[minor >> gd->minor_shift] & GENHD_FL_REMOVABLE )
        {
            /* This is a removable device => assume that media is missing. */ 
            return -ENOMEDIUM; /* media not present (this is a guess) */
        } 
        else
        { 
            /* Just go for the general 'no such device' error. */
            return -ENODEV;    /* no such device */
        }
    }
    
    /* Update of usage count is protected by per-device semaphore. */
    disk->usage++;

    return 0;
}


int blkif_release(struct inode *inode, struct file *filep)
{
    xl_disk_t *disk = xldev_to_xldisk(inode->i_rdev);

    /*
     * When usage drops to zero it may allow more VBD updates to occur.
     * Update of usage count is protected by a per-device semaphore.
     */
    if ( --disk->usage == 0 ) {
        vbd_update();
    }

    return 0;
}


int blkif_ioctl(struct inode *inode, struct file *filep,
                unsigned command, unsigned long argument)
{
    kdev_t dev = inode->i_rdev;
    struct hd_geometry *geo = (struct hd_geometry *)argument;
    struct gendisk *gd;     
    struct hd_struct *part; 
    int i;
    unsigned short cylinders;
    byte heads, sectors;

    /* NB. No need to check permissions. That is done for us. */
    
    DPRINTK_IOCTL("command: 0x%x, argument: 0x%lx, dev: 0x%04x\n",
                  command, (long) argument, dev); 
  
    gd = get_gendisk(dev);
    part = &gd->part[MINOR(dev)]; 

    switch ( command )
    {
    case BLKGETSIZE:
        DPRINTK_IOCTL("   BLKGETSIZE: %x %lx\n", BLKGETSIZE, part->nr_sects); 
        return put_user(part->nr_sects, (unsigned long *) argument);

    case BLKGETSIZE64:
        DPRINTK_IOCTL("   BLKGETSIZE64: %x %llx\n", BLKGETSIZE64,
                      (u64)part->nr_sects * 512);
        return put_user((u64)part->nr_sects * 512, (u64 *) argument);

    case BLKRRPART:                               /* re-read partition table */
        DPRINTK_IOCTL("   BLKRRPART: %x\n", BLKRRPART);
        return blkif_revalidate(dev);

    case BLKSSZGET:
        return hardsect_size[MAJOR(dev)][MINOR(dev)]; 

    case BLKBSZGET:                                        /* get block size */
        DPRINTK_IOCTL("   BLKBSZGET: %x\n", BLKBSZGET);
        break;

    case BLKBSZSET:                                        /* set block size */
        DPRINTK_IOCTL("   BLKBSZSET: %x\n", BLKBSZSET);
        break;

    case BLKRASET:                                         /* set read-ahead */
        DPRINTK_IOCTL("   BLKRASET: %x\n", BLKRASET);
        break;

    case BLKRAGET:                                         /* get read-ahead */
        DPRINTK_IOCTL("   BLKRAFET: %x\n", BLKRAGET);
        break;

    case HDIO_GETGEO:
        DPRINTK_IOCTL("   HDIO_GETGEO: %x\n", HDIO_GETGEO);
        if (!argument) return -EINVAL;

        /* We don't have real geometry info, but let's at least return
           values consistent with the size of the device */

        heads = 0xff;
        sectors = 0x3f; 
        cylinders = part->nr_sects / (heads * sectors);

        if (put_user(0x00,  (unsigned long *) &geo->start)) return -EFAULT;
        if (put_user(heads,  (byte *)&geo->heads)) return -EFAULT;
        if (put_user(sectors,  (byte *)&geo->sectors)) return -EFAULT;
        if (put_user(cylinders, (unsigned short *)&geo->cylinders)) return -EFAULT;

        return 0;

    case HDIO_GETGEO_BIG: 
        DPRINTK_IOCTL("   HDIO_GETGEO_BIG: %x\n", HDIO_GETGEO_BIG);
        if (!argument) return -EINVAL;

        /* We don't have real geometry info, but let's at least return
           values consistent with the size of the device */

        heads = 0xff;
        sectors = 0x3f; 
        cylinders = part->nr_sects / (heads * sectors);

        if (put_user(0x00,  (unsigned long *) &geo->start))  return -EFAULT;
        if (put_user(heads,  (byte *)&geo->heads))   return -EFAULT;
        if (put_user(sectors,  (byte *)&geo->sectors)) return -EFAULT;
        if (put_user(cylinders, (unsigned int *) &geo->cylinders)) return -EFAULT;

        return 0;

    case CDROMMULTISESSION:
        DPRINTK("FIXME: support multisession CDs later\n");
        for ( i = 0; i < sizeof(struct cdrom_multisession); i++ )
            if ( put_user(0, (byte *)(argument + i)) ) return -EFAULT;
        return 0;

    case SCSI_IOCTL_GET_BUS_NUMBER:
        DPRINTK("FIXME: SCSI_IOCTL_GET_BUS_NUMBER ioctl in XL blkif");
        return -ENOSYS;

    default:
        printk(KERN_ALERT "ioctl %08x not supported by XL blkif\n", command);
        return -ENOSYS;
    }
    
    return 0;
}



/* check media change: should probably do something here in some cases :-) */
int blkif_check(kdev_t dev)
{
    DPRINTK("blkif_check\n");
    return 0;
}

int blkif_revalidate(kdev_t dev)
{
    struct block_device *bd;
    struct gendisk *gd;
    xl_disk_t *disk;
    unsigned long capacity;
    int i, rc = 0;
    
    if ( (bd = bdget(dev)) == NULL )
        return -EINVAL;

    /*
     * Update of partition info, and check of usage count, is protected
     * by the per-block-device semaphore.
     */
    down(&bd->bd_sem);

    if ( ((gd = get_gendisk(dev)) == NULL) ||
         ((disk = xldev_to_xldisk(dev)) == NULL) ||
         ((capacity = gd->part[MINOR(dev)].nr_sects) == 0) )
    {
        rc = -EINVAL;
        goto out;
    }

    if ( disk->usage > 1 )
    {
        rc = -EBUSY;
        goto out;
    }

    /* Only reread partition table if VBDs aren't mapped to partitions. */
    if ( !(gd->flags[MINOR(dev) >> gd->minor_shift] & GENHD_FL_VIRT_PARTNS) )
    {
        for ( i = gd->max_p - 1; i >= 0; i-- )
        {
            invalidate_device(dev+i, 1);
            gd->part[MINOR(dev+i)].start_sect = 0;
            gd->part[MINOR(dev+i)].nr_sects   = 0;
            gd->sizes[MINOR(dev+i)]           = 0;
        }

        grok_partitions(gd, MINOR(dev)>>gd->minor_shift, gd->max_p, capacity);
    }

 out:
    up(&bd->bd_sem);
    bdput(bd);
    return rc;
}


/*
 * blkif_queue_request
 *
 * request block io 
 * 
 * id: for guest use only.
 * operation: BLKIF_OP_{READ,WRITE,PROBE}
 * buffer: buffer to read/write into. this should be a
 *   virtual address in the guest os.
 */
static int blkif_queue_request(unsigned long   id,
                               int             operation,
                               char *          buffer,
                               unsigned long   sector_number,
                               unsigned short  nr_sectors,
                               kdev_t          device)
{
    unsigned long       buffer_ma = virt_to_bus(buffer);
    unsigned long       xid;
    struct gendisk     *gd;
    blkif_request_t    *req;
    struct buffer_head *bh;
    unsigned int        fsect, lsect;
#ifdef CONFIG_XEN_BLKDEV_GRANT
    int ref;
#endif
    printk("cwc:%s: in op:%d\n", __FUNCTION__, operation);

    fsect = (buffer_ma & ~PAGE_MASK) >> 9;
    lsect = fsect + nr_sectors - 1;

    /* Buffer must be sector-aligned. Extent mustn't cross a page boundary. */
    if ( unlikely((buffer_ma & ((1<<9)-1)) != 0) )
        BUG();
    if ( lsect > 7 )
        BUG();

    buffer_ma &= PAGE_MASK;

    if ( unlikely(blkif_state != BLKIF_STATE_CONNECTED) )
        return 1;

    switch ( operation )
    {

    case BLKIF_OP_READ:
    case BLKIF_OP_WRITE:
        gd = get_gendisk(device); 

        /*
         * Update the sector_number we'll pass down as appropriate; note that
         * we could sanity check that resulting sector will be in this
         * partition, but this will happen in driver backend anyhow.
         */
        sector_number += gd->part[MINOR(device)].start_sect;

        /*
         * If this unit doesn't consist of virtual partitions then we clear 
         * the partn bits from the device number.
         */
        if ( !(gd->flags[MINOR(device)>>gd->minor_shift] & 
               GENHD_FL_VIRT_PARTNS) )
            device &= ~(gd->max_p - 1);

        if ( (sg_operation == operation) &&
             (sg_dev == device) &&
             (sg_next_sect == sector_number) )
        {
            printk("cwc:%s: building req\n", __FUNCTION__);
            req = RING_GET_REQUEST(&blk_ring, 
                                   blk_ring.req_prod_pvt - 1);
            bh = (struct buffer_head *)id;
     
            bh->b_reqnext = (struct buffer_head *)rec_ring[req->id].id;
     
            rec_ring[req->id].id = id;
                                                                                                
#ifdef CONFIG_XEN_BLKDEV_GRANT
            /* install a grant reference. */
            ref = gnttab_claim_grant_reference(&gref_head, gref_terminal);
            ASSERT( ref != -ENOSPC );

            gnttab_grant_foreign_access_ref(
                        ref,
                        rdomid,
                        buffer_ma >> PAGE_SHIFT,
                        ( operation == BLKIF_OP_WRITE ? 1 : 0 ) );

            req->frame_and_sects[req->nr_segments] =
                (((u32) ref ) << 16) | (fsect << 3) | lsect;
#else
            req->frame_and_sects[req->nr_segments] =
                buffer_ma | (fsect << 3) | lsect;
#endif
            if ( ++req->nr_segments < BLKIF_MAX_SEGMENTS_PER_REQUEST )
                sg_next_sect += nr_sectors;
            else
                DISABLE_SCATTERGATHER();

            /* Update the copy of the request in the recovery ring. */
            translate_req_to_pfn(&rec_ring[req->id], req );

            printk("cwc:%s: access granted to %lx\n", __FUNCTION__, buffer_ma);
            return 0;
        }
        else if ( RING_FULL(&blk_ring) )
        {
            printk("cwc:%s: ring full\n", __FUNCTION__);
            return 1;
        }
        else
        {
            sg_operation = operation;
            sg_dev       = device;
            sg_next_sect = sector_number + nr_sectors;
        }
        break;

    default:
        {
        printk("cwc:%s: pre panic for unknown op %d\n", __FUNCTION__, operation);
        panic("unknown op %d\n", operation);
        }
    }
    printk("cwc:%s: mid\n", __FUNCTION__);

    /* Fill out a communications ring structure. */
    req = RING_GET_REQUEST(&blk_ring, blk_ring.req_prod_pvt);

    xid = GET_ID_FROM_FREELIST();
    rec_ring[xid].id = id;

    req->id            = xid;
    req->operation     = operation;
    req->sector_number = (blkif_sector_t)sector_number;
    req->device        = device; 
    req->nr_segments   = 1;
#ifdef CONFIG_XEN_BLKDEV_GRANT
    /* install a grant reference. */
    ref = gnttab_claim_grant_reference(&gref_head, gref_terminal);
    ASSERT( ref != -ENOSPC );

    gnttab_grant_foreign_access_ref(
                ref,
                rdomid,
                buffer_ma >> PAGE_SHIFT,
                ( operation == BLKIF_OP_WRITE ? 1 : 0 ) );

    req->frame_and_sects[0] = (((u32) ref)<<16)  | (fsect<<3) | lsect;
#else
    req->frame_and_sects[0] = buffer_ma | (fsect<<3) | lsect;
#endif

    /* Keep a private copy so we can reissue requests when recovering. */    
    translate_req_to_pfn(&rec_ring[xid], req );

    blk_ring.req_prod_pvt++;
    
    printk("cwc:%s: out buf:%lx\n", __FUNCTION__, buffer_ma);
    return 0;
}


/*
 * do_blkif_request
 *  read a block; request is in a request queue
 */
void do_blkif_request(request_queue_t *rq)
{
    struct request *req;
    struct buffer_head *bh, *next_bh;
    int rw, nsect, full, queued = 0;

    DPRINTK("Entered do_blkif_request\n"); 

    while ( !rq->plugged && !list_empty(&rq->queue_head))
    {
        if ( (req = blkdev_entry_next_request(&rq->queue_head)) == NULL ) 
            goto out;
  
        DPRINTK("do_blkif_request %p: cmd %i, sec %lx, (%li/%li) bh:%p\n",
                req, req->cmd, req->sector,
                req->current_nr_sectors, req->nr_sectors, req->bh);

        rw = req->cmd;
        if ( rw == READA )
            rw = READ;
        if ( unlikely((rw != READ) && (rw != WRITE)) )
            panic("XenoLinux Virtual Block Device: bad cmd: %d\n", rw);

        req->errors = 0;

        bh = req->bh;
        while ( bh != NULL )
        {
            next_bh = bh->b_reqnext;
            bh->b_reqnext = NULL;

            full = blkif_queue_request(
                (unsigned long)bh,
                (rw == READ) ? BLKIF_OP_READ : BLKIF_OP_WRITE, 
                bh->b_data, bh->b_rsector, bh->b_size>>9, bh->b_rdev);

            if ( full )
            { 
                bh->b_reqnext = next_bh;
                pending_queues[nr_pending++] = rq;
                if ( unlikely(nr_pending >= MAX_PENDING) )
                    BUG();
                goto out; 
            }

            queued++;

            /* Dequeue the buffer head from the request. */
            nsect = bh->b_size >> 9;
            bh = req->bh = next_bh;
            
            if ( bh != NULL )
            {
                /* There's another buffer head to do. Update the request. */
                req->hard_sector += nsect;
                req->hard_nr_sectors -= nsect;
                req->sector = req->hard_sector;
                req->nr_sectors = req->hard_nr_sectors;
                req->current_nr_sectors = bh->b_size >> 9;
                req->buffer = bh->b_data;
            }
            else
            {
                /* That was the last buffer head. Finalise the request. */
                if ( unlikely(end_that_request_first(req, 1, "XenBlk")) )
                    BUG();
                blkdev_dequeue_request(req);
                end_that_request_last(req);
            }
        }
    }

 out:
    if ( queued != 0 )
        flush_requests();
}


static void blkif_int(int irq, void *dev_id, struct pt_regs *ptregs)
{
    RING_IDX i, rp; 
    unsigned long flags; 
    struct buffer_head *bh, *next_bh;
    
    spin_lock_irqsave(&io_request_lock, flags);     

    if ( unlikely(blkif_state == BLKIF_STATE_CLOSED || recovery) )
    {
        spin_unlock_irqrestore(&io_request_lock, flags);
        return;
    }

    rp = blk_ring.sring->rsp_prod;
    rmb(); /* Ensure we see queued responses up to 'rp'. */

    for ( i = blk_ring.rsp_cons; i != rp; i++ )
    {
        unsigned long id;
        blkif_response_t *bret;
        
        bret = RING_GET_RESPONSE(&blk_ring, i);
        id = bret->id;
        bh = (struct buffer_head *)rec_ring[id].id; 

        blkif_completion( &rec_ring[id] );

        ADD_ID_TO_FREELIST(id);

        switch ( bret->operation )
        {
        case BLKIF_OP_READ:
        case BLKIF_OP_WRITE:
            if ( unlikely(bret->status != BLKIF_RSP_OKAY) )
                DPRINTK("Bad return from blkdev data request: %lx\n",
                        bret->status);
            for ( ; bh != NULL; bh = next_bh )
            {
                next_bh = bh->b_reqnext;
                bh->b_reqnext = NULL;
                bh->b_end_io(bh, bret->status == BLKIF_RSP_OKAY);
            }

            break;
        case BLKIF_OP_PROBE:
            memcpy(&blkif_control_rsp, bret, sizeof(*bret));
            blkif_control_rsp_valid = 1;
            break;
        default:
            BUG();
        }

    }
    blk_ring.rsp_cons = i;
    
    kick_pending_request_queues();

    spin_unlock_irqrestore(&io_request_lock, flags);
}

#endif

/*****************************  COMMON CODE  *******************************/

#ifdef CONFIG_XEN_BLKDEV_GRANT
void blkif_control_probe_send(blkif_request_t *req, blkif_response_t *rsp,
                              unsigned long address)
{
    int ref = gnttab_claim_grant_reference(&gref_head, gref_terminal);
    ASSERT( ref != -ENOSPC );

    gnttab_grant_foreign_access_ref( ref, rdomid, address >> PAGE_SHIFT, 0 );
    printk("cwc:%s: grant access to buf:%lx\n", __FUNCTION__, address >> PAGE_SHIFT);

    req->frame_and_sects[0] = (((u32) ref) << 16) | 7;

    blkif_control_send(req, rsp);
}
#endif

void blkif_control_send(blkif_request_t *req, blkif_response_t *rsp)
{
    unsigned long flags, id;
    blkif_request_t *req_d;
    printk("cwc:%s: in\n", __FUNCTION__);

 retry:
    while ( RING_FULL(&blk_ring) )
    {
        set_current_state(TASK_INTERRUPTIBLE);
        schedule_timeout(1);
    }

    printk("cwc:%s: pre spin_lock_irqsave\n", __FUNCTION__);
    spin_lock_irqsave(&blkif_io_lock, flags);
    printk("cwc:%s: post spin_lock_irqsave\n", __FUNCTION__);
    if ( RING_FULL(&blk_ring) )
    {
        printk("cwc:%s: spin_unlock_irqrestore\n", __FUNCTION__);
        spin_unlock_irqrestore(&blkif_io_lock, flags);
        goto retry;
    }

    DISABLE_SCATTERGATHER();
    req_d = RING_GET_REQUEST(&blk_ring, blk_ring.req_prod_pvt);
    *req_d = *req;    

    id = GET_ID_FROM_FREELIST();
    req_d->id = id;
    rec_ring[id].id = (unsigned long) req;

    translate_req_to_pfn( &rec_ring[id], req );

    blk_ring.req_prod_pvt++;
    flush_requests();

    printk("cwc:%s: spin_unlock_irqrestore 2\n", __FUNCTION__);
    spin_unlock_irqrestore(&blkif_io_lock, flags);

    while ( !blkif_control_rsp_valid )
    {
        set_current_state(TASK_INTERRUPTIBLE);
        schedule_timeout(1);
    }

    memcpy(rsp, &blkif_control_rsp, sizeof(*rsp));
    blkif_control_rsp_valid = 0;
    printk("cwc:%s: out\n", __FUNCTION__);
}


/* Send a driver status notification to the domain controller. */
static void send_driver_status(int ok)
{
    ctrl_msg_t cmsg = {
        .type    = CMSG_BLKIF_FE,
        .subtype = CMSG_BLKIF_FE_DRIVER_STATUS,
        .length  = sizeof(blkif_fe_driver_status_t),
    };
    blkif_fe_driver_status_t *msg = (void*)cmsg.msg;
    
    msg->status = (ok ? BLKIF_DRIVER_STATUS_UP : BLKIF_DRIVER_STATUS_DOWN);

    printk("cwc:%s: ctrl_if_send_message_block\n", __FUNCTION__);
    ctrl_if_send_message_block(&cmsg, NULL, 0, TASK_UNINTERRUPTIBLE);
}

/* Tell the controller to bring up the interface. */
static void blkif_send_interface_connect(void)
{
    ctrl_msg_t cmsg = {
        .type    = CMSG_BLKIF_FE,
        .subtype = CMSG_BLKIF_FE_INTERFACE_CONNECT,
        .length  = sizeof(blkif_fe_interface_connect_t),
    };
    blkif_fe_interface_connect_t *msg = (void*)cmsg.msg;
    
    msg->handle      = 0;
    msg->shmem_frame = (virt_to_machine(blk_ring.sring) >> PAGE_SHIFT);
    
    printk("cwc:%s: ctrl_if_send_message_block\n", __FUNCTION__);
    ctrl_if_send_message_block(&cmsg, NULL, 0, TASK_UNINTERRUPTIBLE);
}

static void blkif_free(void)
{
    /* Prevent new requests being issued until we fix things up. */
    printk("cwc:%s: pre spin_lock_irq\n", __FUNCTION__);
    spin_lock_irq(&blkif_io_lock);
    printk("cwc:%s: post spin_lock_irq\n", __FUNCTION__);
    recovery = 1;
    blkif_state = BLKIF_STATE_DISCONNECTED;
    spin_unlock_irq(&blkif_io_lock);
    printk("cwc:%s: spin_unlock_irq\n", __FUNCTION__);

    /* Free resources associated with old device channel. */
    if ( blk_ring.sring != NULL )
    {
        free_page((unsigned long)blk_ring.sring);
        blk_ring.sring = NULL;
    }
    free_irq(blkif_irq, NULL);
    blkif_irq = 0;
    
    unbind_evtchn_from_irq(blkif_evtchn);
    blkif_evtchn = 0;
    printk("cwc:%s: out\n", __FUNCTION__);
}

static void blkif_close(void)
{
    printk("cwc:%s: called\n", __FUNCTION__);
}

/* Move from CLOSED to DISCONNECTED state. */
static void blkif_disconnect(void)
{
    blkif_sring_t *sring;
    printk("cwc:%s: called\n", __FUNCTION__);
    
    if ( blk_ring.sring != NULL )
        free_page((unsigned long)blk_ring.sring);
    
    sring = (blkif_sring_t *)__get_free_page(GFP_KERNEL);
    SHARED_RING_INIT(sring);
    FRONT_RING_INIT(&blk_ring, sring, PAGE_SIZE);
    blkif_state  = BLKIF_STATE_DISCONNECTED;
    blkif_send_interface_connect();
}

static void blkif_reset(void)
{
    printk("cwc:%s: called\n", __FUNCTION__);
    blkif_free();
    blkif_disconnect();
}

static void blkif_recover(void)
{
    int i;
    blkif_request_t *req;
    printk("cwc:%s: in\n", __FUNCTION__);

    /* Hmm, requests might be re-ordered when we re-issue them.
     * This will need to be fixed once we have barriers */

    /* Stage 1 : Find active and move to safety. */
    for ( i = 0; i < BLK_RING_SIZE; i++ )
    {
        if ( rec_ring[i].id >= PAGE_OFFSET )
        {
            req = RING_GET_REQUEST(&blk_ring, 
                                   blk_ring.req_prod_pvt);
            translate_req_to_mfn(req, &rec_ring[i]);
            blk_ring.req_prod_pvt++;
        }
    }
    printk("cwc:%s: post 1\n", __FUNCTION__);

    /* Stage 2 : Set up shadow list. */
    for ( i = 0; i < blk_ring.req_prod_pvt; i++ ) 
    {
        req = RING_GET_REQUEST(&blk_ring, i);
        rec_ring[i].id = req->id;  
        req->id = i;
        translate_req_to_pfn(&rec_ring[i], req);
    }
    printk("cwc:%s: post 2\n", __FUNCTION__);

    /* Stage 3 : Set up free list. */
    for ( ; i < BLK_RING_SIZE; i++ )
        rec_ring[i].id = i+1;
    rec_ring_free = blk_ring.req_prod_pvt;
    rec_ring[BLK_RING_SIZE-1].id = 0x0fffffff;
    printk("cwc:%s: post 3\n", __FUNCTION__);

    /* blk_ring->req_prod will be set when we flush_requests().*/
    wmb();

    /* Switch off recovery mode, using a memory barrier to ensure that
     * it's seen before we flush requests - we don't want to miss any
     * interrupts. */
    recovery = 0;
    wmb();

    /* Kicks things back into life. */
    flush_requests();

    /* Now safe to left other peope use interface. */
    blkif_state = BLKIF_STATE_CONNECTED;
    printk("cwc:%s: out\n", __FUNCTION__);
}

static void blkif_connect(blkif_fe_interface_status_t *status)
{
    int err = 0;

    blkif_evtchn = status->evtchn;
    blkif_irq    = bind_evtchn_to_irq(blkif_evtchn);
#ifdef CONFIG_XEN_BLKDEV_GRANT
    rdomid       = status->domid;
#endif
    printk("cwc:%s: in\n", __FUNCTION__);

    err = request_irq(blkif_irq, blkif_int, SA_SAMPLE_RANDOM, "blkif", NULL);
    if ( err )
    {
        printk(KERN_ALERT "xen_blk: request_irq failed (err=%d)\n", err);
        return;
    }

    if ( recovery ) 
    {
        printk("cwc:%s: recovery\n", __FUNCTION__);
        blkif_recover();
    } 
    else 
    {
        /* Transition to connected in case we need to do 
         *  a partition probe on a whole disk. */
        blkif_state = BLKIF_STATE_CONNECTED;
        printk("cwc:%s: connected\n", __FUNCTION__);
        
        /* Probe for discs attached to the interface. */
        xlvbd_init();
    }
    
    /* Kick pending requests. */
    printk("cwc:%s: pre spin_lock_irq\n", __FUNCTION__);
    spin_lock_irq(&blkif_io_lock);
    printk("cwc:%s: post spin_lock_irq\n", __FUNCTION__);
    kick_pending_request_queues();
    spin_unlock_irq(&blkif_io_lock);
    printk("cwc:%s: spin_unlock_irq\n", __FUNCTION__);
}

static void unexpected(blkif_fe_interface_status_t *status)
{
    DPRINTK(" Unexpected blkif status %u in state %u\n", 
            status->status, blkif_state);
}

static void blkif_status(blkif_fe_interface_status_t *status)
{
    if ( status->handle != blkif_handle )
    {
        WPRINTK(" Invalid blkif: handle=%u\n", status->handle);
        unexpected(status);
        return;
    }
    printk("cwc:%s: status: %u\n", __FUNCTION__, status->status);

    switch ( status->status ) 
    {
    case BLKIF_INTERFACE_STATUS_CLOSED:
        switch ( blkif_state )
        {
        case BLKIF_STATE_CLOSED:
            unexpected(status);
            break;
        case BLKIF_STATE_DISCONNECTED:
        case BLKIF_STATE_CONNECTED:
            unexpected(status);
            blkif_close();
            break;
        }
        break;

    case BLKIF_INTERFACE_STATUS_DISCONNECTED:
        switch ( blkif_state )
        {
        case BLKIF_STATE_CLOSED:
            blkif_disconnect();
            break;
        case BLKIF_STATE_DISCONNECTED:
        case BLKIF_STATE_CONNECTED:
            /* unexpected(status); */ /* occurs during suspend/resume */
            blkif_reset();
            break;
        }
        break;

    case BLKIF_INTERFACE_STATUS_CONNECTED:
        switch ( blkif_state )
        {
        case BLKIF_STATE_CLOSED:
            unexpected(status);
            blkif_disconnect();
            blkif_connect(status);
            break;
        case BLKIF_STATE_DISCONNECTED:
            blkif_connect(status);
            break;
        case BLKIF_STATE_CONNECTED:
            unexpected(status);
            blkif_connect(status);
            break;
        }
        break;

    case BLKIF_INTERFACE_STATUS_CHANGED:
        switch ( blkif_state )
        {
        case BLKIF_STATE_CLOSED:
        case BLKIF_STATE_DISCONNECTED:
            unexpected(status);
            break;
        case BLKIF_STATE_CONNECTED:
            vbd_update();
            break;
        }
        break;

    default:
        WPRINTK(" Invalid blkif status: %d\n", status->status);
        break;
    }
}


static void blkif_ctrlif_rx(ctrl_msg_t *msg, unsigned long id)
{
    printk("cwc:%s: called\n", __FUNCTION__);
    switch ( msg->subtype )
    {
    case CMSG_BLKIF_FE_INTERFACE_STATUS:
        blkif_status((blkif_fe_interface_status_t *)
                     &msg->msg[0]);
        break;
    default:
        msg->length = 0;
        break;
    }

    ctrl_if_send_response(msg);
}

int wait_for_blkif(void)
{
    int err = 0;
    int i;
    printk("cwc:%s: in\n", __FUNCTION__);
    send_driver_status(1);

    /*
     * We should read 'nr_interfaces' from response message and wait
     * for notifications before proceeding. For now we assume that we
     * will be notified of exactly one interface.
     */
    for ( i=0; (blkif_state != BLKIF_STATE_CONNECTED) && (i < 10*HZ); i++ )
    {
        set_current_state(TASK_INTERRUPTIBLE);
        schedule_timeout(1);
    }

    if ( blkif_state != BLKIF_STATE_CONNECTED )
    {
        printk(KERN_INFO "xen_blk: Timeout connecting to device!\n");
        err = -ENOSYS;
    }
    printk("cwc:%s: out\n", __FUNCTION__);
    return err;
}

int __init xlblk_init(void)
{
    int i;

#ifdef CONFIG_XEN_BLKDEV_GRANT
    if ( 0 > gnttab_alloc_grant_references( MAXIMUM_OUTSTANDING_BLOCK_REQS,
                                            &gref_head, &gref_terminal ))
        return 1;
    printk(KERN_ALERT "Blkif frontend is using grant tables.\n");
#endif

    if ( (xen_start_info.flags & SIF_INITDOMAIN) ||
         (xen_start_info.flags & SIF_BLK_BE_DOMAIN) )
        return 0;

    printk(KERN_INFO "xen_blk: Initialising virtual block device driver\n");

    rec_ring_free = 0;
    for ( i = 0; i < BLK_RING_SIZE; i++ )
        rec_ring[i].id = i+1;
    rec_ring[BLK_RING_SIZE-1].id = 0x0fffffff;

    (void)ctrl_if_register_receiver(CMSG_BLKIF_FE, blkif_ctrlif_rx,
                                    CALLBACK_IN_BLOCKING_CONTEXT);

    wait_for_blkif();

    return 0;
}

void blkdev_suspend(void)
{
    printk("cwc:%s: called\n", __FUNCTION__);
}

void blkdev_resume(void)
{
    printk("cwc:%s: called\n", __FUNCTION__);
    send_driver_status(1);
}

void blkif_completion(blkif_request_t *req)
{
    int i;
    printk("cwc:%s: in\n", __FUNCTION__);
#ifdef CONFIG_XEN_BLKDEV_GRANT
    grant_ref_t gref;

    for ( i = 0; i < req->nr_segments; i++ )
    {
        gref = blkif_gref_from_fas(req->frame_and_sects[i]);
        gnttab_release_grant_reference(&gref_head, gref);
    }
#else
    /* This is a hack to get the dirty logging bits set */
    switch ( req->operation )
    {
    case BLKIF_OP_READ:
        for ( i = 0; i < req->nr_segments; i++ )
        {
            unsigned long pfn = req->frame_and_sects[i] >> PAGE_SHIFT;
            unsigned long mfn = phys_to_machine_mapping[pfn];
            xen_machphys_update(mfn, pfn);
        }
        break;
    }
#endif
    printk("cwc:%s: out\n", __FUNCTION__);
}

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: grant_table.c --]
[-- Type: text/x-csrc; name="grant_table.c", Size: 38468 bytes --]

/******************************************************************************
 * common/grant_table.c
 * 
 * Mechanism for granting foreign access to page frames, and receiving
 * page-ownership transfers.
 * 
 * Copyright (c) 2005 Christopher Clark
 * Copyright (c) 2004 K A Fraser
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#define GRANT_DEBUG 1
#define GRANT_DEBUG_VERBOSE 1

#include <xen/config.h>
#include <xen/sched.h>
#include <xen/shadow.h>
#include <xen/mm.h>

#define PIN_FAIL(_lbl, _rc, _f, _a...)   \
    do {                           \
        DPRINTK( _f, ## _a );      \
        rc = (_rc);                \
        goto _lbl;                 \
    } while ( 0 )

static inline int
get_maptrack_handle(
    grant_table_t *t)
{
    unsigned int h;
    if ( unlikely((h = t->maptrack_head) == t->maptrack_limit) )
        return -1;
    t->maptrack_head = t->maptrack[h].ref_and_flags >> MAPTRACK_REF_SHIFT;
    t->map_count++;
    return h;
}

static inline void
put_maptrack_handle(
    grant_table_t *t, int handle)
{
    t->maptrack[handle].ref_and_flags = t->maptrack_head << MAPTRACK_REF_SHIFT;
    t->maptrack_head = handle;
    t->map_count--;
}

static int
__gnttab_activate_grant_ref(
    struct domain          *mapping_d,          /* IN */
    struct exec_domain     *mapping_ed,
    struct domain          *granting_d,
    grant_ref_t             ref,
    u16                     dev_hst_ro_flags,
    unsigned long           host_virt_addr,
    unsigned long          *pframe )            /* OUT */
{
    domid_t               sdom;
    u16                   sflags;
    active_grant_entry_t *act;
    grant_entry_t        *sha;
    s16                   rc = 1;
    unsigned long         frame = 0;
    int                   retries = 0;

    /*
     * Objectives of this function:
     * . Make the record ( granting_d, ref ) active, if not already.
     * . Update shared grant entry of owner, indicating frame is mapped.
     * . Increment the owner act->pin reference counts.
     * . get_page on shared frame if new mapping.
     * . get_page_type if this is first RW mapping of frame.
     * . Add PTE to virtual address space of mapping_d, if necessary.
     * Returns:
     * .  -ve: error
     * .    1: ok
     * .    0: ok and TLB invalidate of host_virt_addr needed.
     *
     * On success, *pframe contains mfn.
     */

    /*
     * We bound the number of times we retry CMPXCHG on memory locations that
     * we share with a guest OS. The reason is that the guest can modify that
     * location at a higher rate than we can read-modify-CMPXCHG, so the guest
     * could cause us to livelock. There are a few cases where it is valid for
     * the guest to race our updates (e.g., to change the GTF_readonly flag),
     * so we allow a few retries before failing.
     */

    act = &granting_d->grant_table->active[ref];
    sha = &granting_d->grant_table->shared[ref];

    printk("cwc:%s: pre spin_lock\n", __FUNCTION__);
    spin_lock(&granting_d->grant_table->lock);
    printk("cwc:%s: post spin_lock\n", __FUNCTION__);

    if ( act->pin == 0 )
    {
        /* CASE 1: Activating a previously inactive entry. */

        sflags = sha->flags;
        sdom   = sha->domid;

        for ( ; ; )
        {
            u32 scombo, prev_scombo, new_scombo;

            if ( unlikely((sflags & GTF_type_mask) != GTF_permit_access) ||
                 unlikely(sdom != mapping_d->id) )
                PIN_FAIL(unlock_out, GNTST_general_error,
                         "Bad flags (%x) or dom (%d). (NB. expected dom %d)\n",
                        sflags, sdom, mapping_d->id);

            /* Merge two 16-bit values into a 32-bit combined update. */
            /* NB. Endianness! */
            prev_scombo = scombo = ((u32)sdom << 16) | (u32)sflags;

            new_scombo = scombo | GTF_reading;
            if ( !(dev_hst_ro_flags & GNTMAP_readonly) )
            {
                new_scombo |= GTF_writing;
                if ( unlikely(sflags & GTF_readonly) )
                    PIN_FAIL(unlock_out, GNTST_general_error,
                             "Attempt to write-pin a r/o grant entry.\n");
            }

            /* NB. prev_scombo is updated in place to seen value. */
            if ( unlikely(cmpxchg_user((u32 *)&sha->flags,
                                       prev_scombo,
                                       new_scombo)) )
                PIN_FAIL(unlock_out, GNTST_general_error,
                         "Fault while modifying shared flags and domid.\n");

            /* Did the combined update work (did we see what we expected?). */
            if ( likely(prev_scombo == scombo) )
                break;

            if ( retries++ == 4 )
                PIN_FAIL(unlock_out, GNTST_general_error,
                         "Shared grant entry is unstable.\n");

            /* Didn't see what we expected. Split out the seen flags & dom. */
            /* NB. Endianness! */
            sflags = (u16)prev_scombo;
            sdom   = (u16)(prev_scombo >> 16);
        }

        /* rmb(); */ /* not on x86 */

        frame = __gpfn_to_mfn_foreign(granting_d, sha->frame);

        if ( unlikely(!pfn_is_ram(frame)) ||
             unlikely(!((dev_hst_ro_flags & GNTMAP_readonly) ?
                        get_page(&frame_table[frame], granting_d) :
                        get_page_and_type(&frame_table[frame], granting_d,
                                          PGT_writable_page))) )
        {
            clear_bit(_GTF_writing, &sha->flags);
            clear_bit(_GTF_reading, &sha->flags);
            PIN_FAIL(unlock_out, GNTST_general_error,
                     "Could not pin the granted frame (%lx)!\n", frame);
        }

        if ( dev_hst_ro_flags & GNTMAP_device_map )
            act->pin += (dev_hst_ro_flags & GNTMAP_readonly) ?
                GNTPIN_devr_inc : GNTPIN_devw_inc;
        if ( dev_hst_ro_flags & GNTMAP_host_map )
            act->pin += (dev_hst_ro_flags & GNTMAP_readonly) ?
                GNTPIN_hstr_inc : GNTPIN_hstw_inc;
        act->domid = sdom;
        act->frame = frame;
    }
    else 
    {
        /* CASE 2: Active modications to an already active entry. */

        /*
         * A cheesy check for possible pin-count overflow.
         * A more accurate check cannot be done with a single comparison.
         */
        if ( (act->pin & 0x80808080U) != 0 )
            PIN_FAIL(unlock_out, ENOSPC, "Risk of counter overflow %08x\n", act->pin);

        frame = act->frame;

        if ( !(dev_hst_ro_flags & GNTMAP_readonly) && 
             !((sflags = sha->flags) & GTF_writing) )
        {
            for ( ; ; )
            {
                u16 prev_sflags;
                
                if ( unlikely(sflags & GTF_readonly) )
                    PIN_FAIL(unlock_out, GNTST_general_error,
                             "Attempt to write-pin a r/o grant entry.\n");

                prev_sflags = sflags;

                /* NB. prev_sflags is updated in place to seen value. */
                if ( unlikely(cmpxchg_user(&sha->flags, prev_sflags, 
                                           prev_sflags | GTF_writing)) )
                    PIN_FAIL(unlock_out, GNTST_general_error,
                         "Fault while modifying shared flags.\n");

                if ( likely(prev_sflags == sflags) )
                    break;

                if ( retries++ == 4 )
                    PIN_FAIL(unlock_out, GNTST_general_error,
                             "Shared grant entry is unstable.\n");

                sflags = prev_sflags;
            }

            if ( unlikely(!get_page_type(&frame_table[frame],
                                         PGT_writable_page)) )
            {
                clear_bit(_GTF_writing, &sha->flags);
                PIN_FAIL(unlock_out, GNTST_general_error,
                         "Attempt to write-pin a unwritable page.\n");
            }
        }

        if ( dev_hst_ro_flags & GNTMAP_device_map )
            act->pin += (dev_hst_ro_flags & GNTMAP_readonly) ? 
                GNTPIN_devr_inc : GNTPIN_devw_inc;
        if ( dev_hst_ro_flags & GNTMAP_host_map )
            act->pin += (dev_hst_ro_flags & GNTMAP_readonly) ?
                GNTPIN_hstr_inc : GNTPIN_hstw_inc;
    }

    /* At this point:
     * act->pin updated to reflect mapping.
     * sha->flags updated to indicate to granting domain mapping done.
     * frame contains the mfn.
     */

    spin_unlock(&granting_d->grant_table->lock);
    printk("cwc:%s: spin_unlock\n", __FUNCTION__);

    if ( (host_virt_addr != 0) && (dev_hst_ro_flags & GNTMAP_host_map) )
    {
        /* Write update into the pagetable
         */

        rc = update_grant_va_mapping( host_virt_addr,
                                (frame << PAGE_SHIFT) | _PAGE_PRESENT  |
                                                        _PAGE_ACCESSED |
                                                        _PAGE_DIRTY    |
                       ((dev_hst_ro_flags & GNTMAP_readonly) ? 0 : _PAGE_RW),
                       mapping_d, mapping_ed );

        /* IMPORTANT: (rc == 0) => must flush / invalidate entry in TLB.
         * This is done in the outer gnttab_map_grant_ref.
         */

        if ( 0 > rc )
        {
            /* Abort. */

            printk("cwc:%s: pre spin_lock 2\n", __FUNCTION__);
            spin_lock(&granting_d->grant_table->lock);
            printk("cwc:%s: post spin_lock 2\n", __FUNCTION__);

            if ( dev_hst_ro_flags & GNTMAP_readonly )
                act->pin -= GNTPIN_hstr_inc;
            else
            {
                act->pin -= GNTPIN_hstw_inc;
                if ( (act->pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask)) == 0 )
                {
                    clear_bit(_GTF_writing, &sha->flags);
                    put_page_type(&frame_table[frame]);
                }
            }
            if ( act->pin == 0 )
            {
                clear_bit(_GTF_reading, &sha->flags);
                put_page(&frame_table[frame]);
            }

            spin_unlock(&granting_d->grant_table->lock);
            printk("cwc:%s: spin_unlock 2\n", __FUNCTION__);
        }

    }
    *pframe = frame;
    printk("cwc:%s: out\n", __FUNCTION__);
    return rc;

 unlock_out:
    spin_unlock(&granting_d->grant_table->lock);
    printk("cwc:%s: spin_unlock out\n", __FUNCTION__);
    return rc;
}

static int
__gnttab_map_grant_ref(
    gnttab_map_grant_ref_t *uop,
    unsigned long *va)
{
    domid_t               dom;
    grant_ref_t           ref;
    struct domain        *ld, *rd;
    struct exec_domain   *led;
    u16                   dev_hst_ro_flags;
    int                   handle;
    unsigned long         frame, host_virt_addr;
    int                   rc;

    /* Returns 0 if TLB flush / invalidate required by caller.
     * va will indicate the address to be invalidated. */

    led = current;
    ld = led->domain;

    /* Bitwise-OR avoids short-circuiting which screws control flow. */
    if ( unlikely(__get_user(dom, &uop->dom) |
                  __get_user(ref, &uop->ref) |
                  __get_user(host_virt_addr, &uop->host_virt_addr) |
                  __get_user(dev_hst_ro_flags, &uop->flags)) )
    {
        DPRINTK("Fault while reading gnttab_map_grant_ref_t.\n");
        return -EFAULT; /* don't set status */
    }


    if ( ((host_virt_addr != 0) || (dev_hst_ro_flags & GNTMAP_host_map) ) &&
         unlikely(!__addr_ok(host_virt_addr)))
    {
        DPRINTK("Bad virtual address (%x) or flags (%x).\n",
                host_virt_addr, dev_hst_ro_flags);
        (void)__put_user(GNTST_bad_virt_addr, &uop->handle);
        return GNTST_bad_gntref;
    }

    if ( unlikely(ref >= NR_GRANT_ENTRIES) ||
         unlikely((dev_hst_ro_flags & (GNTMAP_device_map|GNTMAP_host_map)) ==
0) )
    {
        DPRINTK("Bad ref (%d) or flags (%x).\n", ref, dev_hst_ro_flags);
        (void)__put_user(GNTST_bad_gntref, &uop->handle);
        return GNTST_bad_gntref;
    }

    if ( unlikely((rd = find_domain_by_id(dom)) == NULL) ||
         unlikely(ld == rd) )
    {
        if ( rd != NULL )
            put_domain(rd);
        DPRINTK("Could not find domain %d\n", dom);
        (void)__put_user(GNTST_bad_domain, &uop->handle);
        return GNTST_bad_domain;
    }

    /* get a maptrack handle */
    if ( unlikely((handle = get_maptrack_handle(ld->grant_table)) == -1) )
    {
        int              i;
        grant_mapping_t *new_mt;
        grant_table_t   *lgt      = ld->grant_table;

        /* grow the maptrack table */
        if ( (new_mt = (void *)alloc_xenheap_pages(lgt->maptrack_order + 1)) == NULL )
        {
            put_domain(rd);
            DPRINTK("No more map handles available\n");
            (void)__put_user(GNTST_no_device_space, &uop->handle);
            return GNTST_no_device_space;
        }

        memcpy(new_mt, lgt->maptrack, PAGE_SIZE << lgt->maptrack_order);
        for ( i = lgt->maptrack_limit; i < (lgt->maptrack_limit << 1); i++ )
            new_mt[i].ref_and_flags = (i+1) << MAPTRACK_REF_SHIFT;

        free_xenheap_pages((unsigned long)lgt->maptrack, lgt->maptrack_order);
        lgt->maptrack          = new_mt;
        lgt->maptrack_order   += 1;
        lgt->maptrack_limit  <<= 1;

        printk("Doubled maptrack size\n");
        handle = get_maptrack_handle(ld->grant_table);
    }

#if GRANT_DEBUG_VERBOSE
    DPRINTK("Mapping grant ref (%hu) for domain (%hu) with flags (%x)\n",
            ref, dom, dev_hst_ro_flags);
#endif

    if ( 0 <= ( rc = __gnttab_activate_grant_ref( ld, led, rd, ref,
                                                  dev_hst_ro_flags,
                                                  host_virt_addr, &frame)))
    {
        /* Only make the maptrack live _after_ writing the pte,
         * in case we overwrite the same frame number, causing a
         *  maptrack walk to find it
         */
        ld->grant_table->maptrack[handle].domid = dom;

        ld->grant_table->maptrack[handle].ref_and_flags
            = (ref << MAPTRACK_REF_SHIFT) |
              (dev_hst_ro_flags & MAPTRACK_GNTMAP_MASK);

        (void)__put_user(frame, &uop->dev_bus_addr);

        if ( dev_hst_ro_flags & GNTMAP_host_map )
            *va = host_virt_addr;

        (void)__put_user(handle, &uop->handle);
    }
    else
    {
        (void)__put_user(rc, &uop->handle);
        put_maptrack_handle(ld->grant_table, handle);
    }

    put_domain(rd);
    return rc;
}

static long
gnttab_map_grant_ref(
    gnttab_map_grant_ref_t *uop, unsigned int count)
{
    int i, flush = 0;
    unsigned long va[8];

    for ( i = 0; i < count; i++ )
        if ( __gnttab_map_grant_ref(&uop[i],
             &va[ (flush < 8 ? flush : 0) ]   ) == 0)
            flush++;

    if ( flush != 0 )
    {
        if ( flush <= 8 )
            for ( i = 0; i < flush; i++ )
                flush_tlb_one_mask(current->domain->cpuset, va[i]);
        else 
            local_flush_tlb();
    }

    return 0;
}

static int
__gnttab_unmap_grant_ref(
    gnttab_unmap_grant_ref_t *uop,
    unsigned long *va)
{
    domid_t        dom;
    grant_ref_t    ref;
    u16            handle;
    struct domain *ld, *rd;

    active_grant_entry_t *act;
    grant_entry_t *sha;
    grant_mapping_t *map;
    u16            flags;
    s16            rc = 1;
    unsigned long  frame, virt;

    ld = current->domain;

    /* Bitwise-OR avoids short-circuiting which screws control flow. */
    if ( unlikely(__get_user(virt, &uop->host_virt_addr) |
                  __get_user(frame, &uop->dev_bus_addr) |
                  __get_user(handle, &uop->handle)) )
    {
        DPRINTK("Fault while reading gnttab_unmap_grant_ref_t.\n");
        return -EFAULT; /* don't set status */
    }

    map = &ld->grant_table->maptrack[handle];

    if ( unlikely(handle >= ld->grant_table->maptrack_limit) ||
         unlikely(!(map->ref_and_flags & MAPTRACK_GNTMAP_MASK)) )
    {
        DPRINTK("Bad handle (%d).\n", handle);
        (void)__put_user(GNTST_bad_handle, &uop->status);
        return GNTST_bad_handle;
    }

    dom   = map->domid;
    ref   = map->ref_and_flags >> MAPTRACK_REF_SHIFT;
    flags = map->ref_and_flags & MAPTRACK_GNTMAP_MASK;

    if ( unlikely((rd = find_domain_by_id(dom)) == NULL) ||
         unlikely(ld == rd) )
    {
        if ( rd != NULL )
            put_domain(rd);
        DPRINTK("Could not find domain %d\n", dom);
        (void)__put_user(GNTST_bad_domain, &uop->status);
        return GNTST_bad_domain;
    }
#if GRANT_DEBUG_VERBOSE
    DPRINTK("Unmapping grant ref (%hu) for domain (%hu) with handle (%hu)\n",
            ref, dom, handle);
#endif

    act = &rd->grant_table->active[ref];
    sha = &rd->grant_table->shared[ref];

    printk("cwc:%s: pre spin_lock\n", __FUNCTION__);
    spin_lock(&rd->grant_table->lock);
    printk("cwc:%s: post spin_lock\n", __FUNCTION__);

    if ( frame == 0 )
        frame = act->frame;
    else if ( frame == GNTUNMAP_DEV_FROM_VIRT )
    {
        if ( !( flags & GNTMAP_device_map ) )
            PIN_FAIL(unmap_out, GNTST_bad_dev_addr,
                     "Bad frame number: frame not mapped for device access.\n");
        frame = act->frame;

        /* frame will be unmapped for device access below if virt addr ok */
    }
    else
    {
        if ( unlikely(frame != act->frame) )
            PIN_FAIL(unmap_out, GNTST_general_error,
                     "Bad frame number doesn't match gntref.\n");
        if ( flags & GNTMAP_device_map )
            act->pin -= (flags & GNTMAP_readonly) ? GNTPIN_devr_inc
                                                  : GNTPIN_devw_inc;

        map->ref_and_flags &= ~GNTMAP_device_map;
        (void)__put_user(0, &uop->dev_bus_addr);

        /* frame is now unmapped for device access */
    }

    if ( (virt != 0) &&
         (flags & GNTMAP_host_map) &&
         ((act->pin & (GNTPIN_hstw_mask | GNTPIN_hstr_mask)) > 0))
    {
        l1_pgentry_t   *pl1e;
        unsigned long   _ol1e;

        pl1e = &linear_pg_table[l1_linear_offset(virt)];
                                                                                            
        if ( unlikely(__get_user(_ol1e, (unsigned long *)pl1e) != 0) )
        {
            DPRINTK("Could not find PTE entry for address %x\n", virt);
            rc = -EINVAL;
            goto unmap_out;
        }

        /* check that the virtual address supplied is actually
         * mapped to act->frame.
         */
        if ( unlikely((_ol1e >> PAGE_SHIFT) != frame ))
        {
            DPRINTK("PTE entry %x for address %x doesn't match frame %x\n",
                    _ol1e, virt, frame);
            rc = -EINVAL;
            goto unmap_out;
        }

        printk("cwc:%s: pre pagetable delete\n", __FUNCTION__);
        /* Delete pagetable entry
         */
        if ( unlikely(__put_user(0, (unsigned long *)pl1e)))
        {
            DPRINTK("Cannot delete PTE entry at %x for virtual address %x\n",
                    pl1e, virt);
            rc = -EINVAL;
            goto unmap_out;
        }

        map->ref_and_flags &= ~GNTMAP_host_map;

        act->pin -= (flags & GNTMAP_readonly) ? GNTPIN_hstr_inc
                                              : GNTPIN_hstw_inc;

        if ( frame == GNTUNMAP_DEV_FROM_VIRT )
        {
            act->pin -= (flags & GNTMAP_readonly) ? GNTPIN_devr_inc
                                                  : GNTPIN_devw_inc;

            map->ref_and_flags &= ~GNTMAP_device_map;
            (void)__put_user(0, &uop->dev_bus_addr);
        }

        rc = 0;
        *va = virt;
        printk("cwc:%s: post pagetable delete\n", __FUNCTION__);
    }

    if ( (map->ref_and_flags & (GNTMAP_device_map|GNTMAP_host_map)) == 0)
    {
        map->ref_and_flags = 0;
        put_maptrack_handle(ld->grant_table, handle);
    }

    /* If just unmapped a writable mapping, mark as dirtied */
    if ( unlikely(shadow_mode_log_dirty(rd)) &&
        !( flags & GNTMAP_readonly ) )
         mark_dirty(rd, frame);

    /* If the last writable mapping has been removed, put_page_type */
    if ( ( (act->pin & (GNTPIN_devw_mask|GNTPIN_hstw_mask) ) == 0) &&
         ( !( flags & GNTMAP_readonly ) ) )
    {
        clear_bit(_GTF_writing, &sha->flags);
        put_page_type(&frame_table[frame]);
    }

    if ( act->pin == 0 )
    {
        clear_bit(_GTF_reading, &sha->flags);
        put_page(&frame_table[frame]);
    }

 unmap_out:
    (void)__put_user(rc, &uop->status);
    printk("cwc:%s: out spin_unlock\n", __FUNCTION__);
    spin_unlock(&rd->grant_table->lock);
    put_domain(rd);
    return rc;
}

static long
gnttab_unmap_grant_ref(
    gnttab_unmap_grant_ref_t *uop, unsigned int count)
{
    int i, flush = 0;
    unsigned long va[8];

    for ( i = 0; i < count; i++ )
        if ( __gnttab_unmap_grant_ref(&uop[i],
             &va[ (flush < 8 ? flush : 0) ]   ) == 0)
            flush++;

    if ( flush != 0 )
    {
        if ( flush <= 8 )
            for ( i = 0; i < flush; i++ )
                flush_tlb_one_mask(current->domain->cpuset, va[i]);
        else 
            local_flush_tlb();
    }

    return 0;
}

static long 
gnttab_setup_table(
    gnttab_setup_table_t *uop, unsigned int count)
{
    gnttab_setup_table_t  op;
    struct domain        *d;
    int                   i;

    if ( count != 1 )
        return -EINVAL;

    if ( unlikely(copy_from_user(&op, uop, sizeof(op)) != 0) )
    {
        DPRINTK("Fault while reading gnttab_setup_table_t.\n");
        return -EFAULT;
    }

    if ( unlikely(op.nr_frames > NR_GRANT_FRAMES) )
    {
        DPRINTK("Xen only supports at most %d grant-table frames per domain.\n",
                NR_GRANT_FRAMES);
        (void)put_user(GNTST_general_error, &uop->status);
        return 0;
    }

    if ( op.dom == DOMID_SELF )
    {
        op.dom = current->domain->id;
    }
    else if ( unlikely(!IS_PRIV(current->domain)) )
    {
        (void)put_user(GNTST_permission_denied, &uop->status);
        return 0;
    }

    if ( unlikely((d = find_domain_by_id(op.dom)) == NULL) )
    {
        DPRINTK("Bad domid %d.\n", op.dom);
        (void)put_user(GNTST_bad_domain, &uop->status);
        return 0;
    }

    if ( op.nr_frames <= NR_GRANT_FRAMES )
    {
        ASSERT(d->grant_table != NULL);
        (void)put_user(GNTST_okay, &uop->status);

        for ( i = 0; i < op.nr_frames; i++ )
            (void)put_user( (
                virt_to_phys( (char*)(d->grant_table->shared)+(i*PAGE_SIZE) )
                              >> PAGE_SHIFT ), &uop->frame_list[i]);
    }

    put_domain(d);
    return 0;
}

#if GRANT_DEBUG
static int
gnttab_dump_table(gnttab_dump_table_t *uop)
{
    grant_table_t        *gt;
    gnttab_dump_table_t   op;
    struct domain        *d;
    u32                   shared_mfn;
    active_grant_entry_t *act;
    grant_entry_t         sha_copy;
    grant_mapping_t      *maptrack;
    int                   i;


    if ( unlikely(copy_from_user(&op, uop, sizeof(op)) != 0) )
    {
        DPRINTK("Fault while reading gnttab_dump_table_t.\n");
        return -EFAULT;
    }

    if ( op.dom == DOMID_SELF )
    {
        op.dom = current->domain->id;
    }

    if ( unlikely((d = find_domain_by_id(op.dom)) == NULL) )
    {
        DPRINTK("Bad domid %d.\n", op.dom);
        (void)put_user(GNTST_bad_domain, &uop->status);
        return 0;
    }

    ASSERT(d->grant_table != NULL);
    gt = d->grant_table;
    (void)put_user(GNTST_okay, &uop->status);

    shared_mfn = virt_to_phys(d->grant_table->shared);

    DPRINTK("Grant table for dom (%hu) MFN (%x)\n",
            op.dom, shared_mfn);

    ASSERT(d->grant_table->active != NULL);
    ASSERT(d->grant_table->shared != NULL);
    ASSERT(d->grant_table->maptrack != NULL);

    for ( i = 0; i < NR_GRANT_ENTRIES; i++ )
    {
        sha_copy =  gt->shared[i];

        if ( sha_copy.flags )
        {
            DPRINTK("Grant: dom (%hu) SHARED (%d) flags:(%hx) dom:(%hu) frame:(%lx)\n",
                    op.dom, i, sha_copy.flags, sha_copy.domid, sha_copy.frame);
        }
    }

    spin_lock(&gt->lock);

    for ( i = 0; i < NR_GRANT_ENTRIES; i++ )
    {
        act = &gt->active[i];

        if ( act->pin )
        {
            DPRINTK("Grant: dom (%hu) ACTIVE (%d) pin:(%x) dom:(%hu) frame:(%lx)\n",
                    op.dom, i, act->pin, act->domid, act->frame);
        }
    }

    for ( i = 0; i < gt->maptrack_limit; i++ )
    {
        maptrack = &gt->maptrack[i];

        if ( maptrack->ref_and_flags & MAPTRACK_GNTMAP_MASK )
        {
            DPRINTK("Grant: dom (%hu) MAP (%d) ref:(%hu) flags:(%x) dom:(%hu)\n",
                    op.dom, i,
                    maptrack->ref_and_flags >> MAPTRACK_REF_SHIFT,
                    maptrack->ref_and_flags & MAPTRACK_GNTMAP_MASK,
                    maptrack->domid);
        }
    }

    spin_unlock(&gt->lock);

    put_domain(d);
    return 0;
}
#endif

long 
do_grant_table_op(
    unsigned int cmd, void *uop, unsigned int count)
{
    long rc;

    if ( count > 512 )
        return -EINVAL;

    LOCK_BIGLOCK(current->domain);

    rc = -EFAULT;
    switch ( cmd )
    {
    case GNTTABOP_map_grant_ref:
        if ( unlikely(!array_access_ok(
            VERIFY_WRITE, uop, count, sizeof(gnttab_map_grant_ref_t))) )
            goto out;
        rc = gnttab_map_grant_ref((gnttab_map_grant_ref_t *)uop, count);
        break;
    case GNTTABOP_unmap_grant_ref:
        if ( unlikely(!array_access_ok(
            VERIFY_WRITE, uop, count, sizeof(gnttab_unmap_grant_ref_t))) )
            goto out;
        rc = gnttab_unmap_grant_ref((gnttab_unmap_grant_ref_t *)uop, count);
        break;
    case GNTTABOP_setup_table:
        rc = gnttab_setup_table((gnttab_setup_table_t *)uop, count);
        break;
#if GRANT_DEBUG
    case GNTTABOP_dump_table:
        rc = gnttab_dump_table((gnttab_dump_table_t *)uop);
        break;
#endif
    default:
        rc = -ENOSYS;
        break;
    }

out:
    UNLOCK_BIGLOCK(current->domain);

    return rc;
}

int
gnttab_check_unmap(
    struct domain *rd, struct domain *ld, unsigned long frame, int readonly)
{
    /* Called when put_page is invoked on a page belonging to a foreign domain.
     * Instead of decrementing the frame table ref count, locate the grant
     * table entry, if any, and if found, decrement that count.
     * Called a _lot_ at domain creation because pages mapped by priv domains
     * also traverse this.
     */

    /* Note: if the same frame is mapped multiple times, and then one of
     *       the ptes is overwritten, which maptrack handle gets invalidated?
     * Advice: don't do it.
     */

    unsigned int handle, ref, refcount;
    grant_table_t        *lgt, *rgt;
    active_grant_entry_t *act;
    grant_mapping_t      *map;
    int found = 0;

    lgt = ld->grant_table;

#if GRANT_DEBUG_VERBOSE
    if ( ld->id != 0 )
    {
        DPRINTK("Foreign unref rd(%d) ld(%d) frm(%x) flgs(%x).\n",
                rd->id, ld->id, frame, readonly);
    }
#endif

    /* Fast exit if we're not mapping anything using grant tables */
    if ( lgt->map_count == 0 )
        return 0;

    if ( get_domain(rd) == 0 )
    {
        DPRINTK("gnttab_check_unmap: couldn't get_domain rd(%d)\n", rd->id);
        return 0;
    }

    rgt = rd->grant_table;

    for ( handle = 0; handle < lgt->maptrack_limit; handle++ )
    {
        map = &lgt->maptrack[handle];


        /* cwc22: if multiple grants of the same frame are disallowed,
         * then the readonly check here can be changed to cause an early abort
         * if we've matched on frame, but not on write permission.
         */
        if ( ( map->ref_and_flags & MAPTRACK_GNTMAP_MASK ) &&
             ( readonly ? 1 : (!(map->ref_and_flags & GNTMAP_readonly))))
        {
            ref = (map->ref_and_flags >> MAPTRACK_REF_SHIFT);
            act = &rgt->active[ref];

            printk("cwc:%s: pre spin_lock\n", __FUNCTION__);
            spin_lock(&rgt->lock);
            printk("cwc:%s: post spin_lock\n", __FUNCTION__);

            if ( act->frame != frame )
            {
                spin_unlock(&rgt->lock);
                printk("cwc:%s: not frame spin_unlock\n", __FUNCTION__);
                continue;
            }

            refcount = act->pin & ( readonly ? GNTPIN_hstr_mask
                                             : GNTPIN_hstw_mask );
            if ( refcount == 0 )
            {
                spin_unlock(&rgt->lock);
                printk("cwc:%s: refcount 0 spin_unlock\n", __FUNCTION__);
                continue;
            }

            /* gotcha */
            DPRINTK("Grant unref rd(%d) ld(%d) frm(%x) flgs(%x).\n",
                    rd->id, ld->id, frame, readonly);

            if ( readonly )
                act->pin -= GNTPIN_hstr_inc;
            else
            {
                act->pin -= GNTPIN_hstw_inc;

                /* any more granted writable mappings? */
                if ( (act->pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask)) == 0 )
                {
                    clear_bit(_GTF_writing, &rgt->shared[ref].flags);
                    put_page_type(&frame_table[frame]);
                }
            }

            if ( act->pin == 0 )
            {
                clear_bit(_GTF_reading, &rgt->shared[ref].flags);
                put_page(&frame_table[frame]);
            }
            spin_unlock(&rgt->lock);
            printk("cwc:%s: spin_unlock\n", __FUNCTION__);

            clear_bit(GNTMAP_host_map, &map->ref_and_flags);

            if ( !(map->ref_and_flags & GNTMAP_device_map) )
                put_maptrack_handle(lgt, handle);

            found = 1;
            break;
        }
    }
    put_domain(rd);

    printk("cwc:%s: out found:%d\n", __FUNCTION__, found);
    return found;
}

int 
gnttab_prepare_for_transfer(
    struct domain *rd, struct domain *ld, grant_ref_t ref)
{
    grant_table_t *rgt;
    grant_entry_t *sha;
    domid_t        sdom;
    u16            sflags;
    u32            scombo, prev_scombo;
    int            retries = 0;
    unsigned long  target_pfn;

    DPRINTK("gnttab_prepare_for_transfer rd(%hu) ld(%hu) ref(%hu).\n",
            rd->id, ld->id, ref);

    if ( unlikely((rgt = rd->grant_table) == NULL) ||
         unlikely(ref >= NR_GRANT_ENTRIES) )
    {
        DPRINTK("Dom %d has no g.t., or ref is bad (%d).\n", rd->id, ref);
        return 0;
    }

    printk("cwc:%s: pre spin_lock\n", __FUNCTION__);
    spin_lock(&rgt->lock);
    printk("cwc:%s: post spin_lock\n", __FUNCTION__);

    sha = &rgt->shared[ref];
    
    sflags = sha->flags;
    sdom   = sha->domid;

    printk("cwc:%s: pre cmpxchg loop\n", __FUNCTION__);
    for ( ; ; )
    {
        target_pfn = sha->frame;

        if ( unlikely(target_pfn >= max_page ) )
        {
            DPRINTK("Bad pfn (%x)\n", target_pfn);
            goto fail;
        }

        if ( unlikely(sflags != GTF_accept_transfer) ||
             unlikely(sdom != ld->id) )
        {
            DPRINTK("Bad flags (%x) or dom (%d). (NB. expected dom %d)\n",
                    sflags, sdom, ld->id);
            goto fail;
        }

        /* Merge two 16-bit values into a 32-bit combined update. */
        /* NB. Endianness! */
        prev_scombo = scombo = ((u32)sdom << 16) | (u32)sflags;

        /* NB. prev_scombo is updated in place to seen value. */
        if ( unlikely(cmpxchg_user((u32 *)&sha->flags, prev_scombo, 
                                   prev_scombo | GTF_transfer_committed)) )
        {
            DPRINTK("Fault while modifying shared flags and domid.\n");
            goto fail;
        }

        /* Did the combined update work (did we see what we expected?). */
        if ( likely(prev_scombo == scombo) )
            break;

        if ( retries++ == 4 )
        {
            DPRINTK("Shared grant entry is unstable.\n");
            goto fail;
        }

        /* Didn't see what we expected. Split out the seen flags & dom. */
        /* NB. Endianness! */
        sflags = (u16)prev_scombo;
        sdom   = (u16)(prev_scombo >> 16);
    }

    spin_unlock(&rgt->lock);
    printk("cwc:%s: out spin_unlock 1\n", __FUNCTION__);
    return 1;

 fail:
    spin_unlock(&rgt->lock);
    printk("cwc:%s: out spin_unlock 0\n", __FUNCTION__);
    return 0;
}

void 
gnttab_notify_transfer(
    struct domain *rd, struct domain *ld, grant_ref_t ref, unsigned long frame)
{
    grant_entry_t  *sha;
    unsigned long   pfn;

    DPRINTK("gnttab_notify_transfer rd(%hu) ld(%hu) ref(%hu).\n",
            rd->id, ld->id, ref);

    sha = &rd->grant_table->shared[ref];

    spin_lock(&rd->grant_table->lock);

    pfn = sha->frame;

    if ( unlikely(pfn >= max_page ) )
        DPRINTK("Bad pfn (%x)\n", pfn);
    else
    {
        machine_to_phys_mapping[frame] = pfn;

        if ( unlikely(shadow_mode_log_dirty(ld)))
             mark_dirty(ld, frame);

        if (shadow_mode_translate(ld))
            __phys_to_machine_mapping[pfn] = frame;
    }
    sha->frame = __mfn_to_gpfn(rd, frame);
    sha->domid = rd->id;
    wmb();
    sha->flags = ( GTF_accept_transfer | GTF_transfer_completed );

    spin_unlock(&rd->grant_table->lock);

    return;
}

int 
grant_table_create(
    struct domain *d)
{
    grant_table_t *t;
    int            i;

    if ( (t = xmalloc(grant_table_t)) == NULL )
        goto no_mem;

    /* Simple stuff. */
    memset(t, 0, sizeof(*t));
    spin_lock_init(&t->lock);

    /* Active grant table. */
    if ( (t->active = xmalloc_array(active_grant_entry_t, NR_GRANT_ENTRIES))
         == NULL )
        goto no_mem;
    memset(t->active, 0, sizeof(active_grant_entry_t) * NR_GRANT_ENTRIES);

    /* Tracking of mapped foreign frames table */
    if ( (t->maptrack = (void *)alloc_xenheap_page()) == NULL )
        goto no_mem;
    t->maptrack_order = 0;
    t->maptrack_limit = PAGE_SIZE / sizeof(grant_mapping_t);
    memset(t->maptrack, 0, PAGE_SIZE);
    for ( i = 0; i < t->maptrack_limit; i++ )
        t->maptrack[i].ref_and_flags = (i+1) << MAPTRACK_REF_SHIFT;

    /* Shared grant table. */
    if ( (t->shared = (void *)alloc_xenheap_pages(ORDER_GRANT_FRAMES)) == NULL )
        goto no_mem;
    memset(t->shared, 0, NR_GRANT_FRAMES * PAGE_SIZE);

    for ( i = 0; i < NR_GRANT_FRAMES; i++ )
    {
        SHARE_PFN_WITH_DOMAIN(virt_to_page((char *)(t->shared)+(i*PAGE_SIZE)), d);
        machine_to_phys_mapping[ (virt_to_phys((char*)(t->shared)+(i*PAGE_SIZE))
                                 >> PAGE_SHIFT) ] = INVALID_M2P_ENTRY;
    }

    /* Okay, install the structure. */
    wmb(); /* avoid races with lock-free access to d->grant_table */
    d->grant_table = t;
    return 0;

 no_mem:
    if ( t != NULL )
    {
        if ( t->active != NULL )
            xfree(t->active);
        if ( t->maptrack != NULL )
            free_xenheap_page((unsigned long)t->maptrack);
        xfree(t);
    }
    return -ENOMEM;
}

void
gnttab_release_dev_mappings(grant_table_t *gt)
{
    grant_mapping_t        *map;
    domid_t                 dom;
    grant_ref_t             ref;
    u16                     handle;
    struct domain          *ld, *rd;
    unsigned long           frame;
    active_grant_entry_t   *act;
    grant_entry_t          *sha;

    ld = current->domain;

    for ( handle = 0; handle < gt->maptrack_limit; handle++ )
    {
        map = &gt->maptrack[handle];

        if ( map->ref_and_flags & GNTMAP_device_map )
        {
            dom = map->domid;
            ref = map->ref_and_flags >> MAPTRACK_REF_SHIFT;

            DPRINTK("Grant release (%hu) ref:(%hu) flags:(%x) dom:(%hu)\n",
                    handle, ref,
                    map->ref_and_flags & MAPTRACK_GNTMAP_MASK, dom);

            if ( unlikely((rd = find_domain_by_id(dom)) == NULL) ||
                 unlikely(ld == rd) )
            {
                if ( rd != NULL )
                    put_domain(rd);

                printk(KERN_WARNING "Grant release: Could not find domain %d\n", dom);
                continue;
            }

            act = &rd->grant_table->active[ref];
            sha = &rd->grant_table->shared[ref];

            spin_lock(&rd->grant_table->lock);

            if ( act->pin & (GNTPIN_devw_mask | GNTPIN_devr_mask) )
            {
                frame = act->frame;

                if ( ( (act->pin & GNTPIN_hstw_mask) == 0 ) &&
                     ( (act->pin & GNTPIN_devw_mask) >  0 ) )
                {
                    clear_bit(_GTF_writing, &sha->flags);
                    put_page_type(&frame_table[frame]);
                }

                act->pin &= ~(GNTPIN_devw_mask | GNTPIN_devr_mask);

                if ( act->pin == 0 )
                {
                    clear_bit(_GTF_reading, &sha->flags);
                    map->ref_and_flags = 0;
                    put_page(&frame_table[frame]);
                }
                else
                    map->ref_and_flags &= ~GNTMAP_device_map;
            }

            spin_unlock(&rd->grant_table->lock);

            put_domain(rd);
        }
    }
}


void
grant_table_destroy(
    struct domain *d)
{
    grant_table_t *t;

    if ( (t = d->grant_table) != NULL )
    {
        /* Free memory relating to this grant table. */
        d->grant_table = NULL;
        free_xenheap_pages((unsigned long)t->shared, ORDER_GRANT_FRAMES);
        free_xenheap_page((unsigned long)t->maptrack); //cwc22
        xfree(t->active);
        xfree(t);
    }
}

void
grant_table_init(
    void)
{
    /* Nothing. */
    DPRINTK("Grant table init\n");
}

/*
 * Local variables:
 * mode: C
 * c-set-style: "BSD"
 * c-basic-offset: 4
 * tab-width: 4
 * indent-tabs-mode: nil
 * End:
 */

[-- Attachment #6: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

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

* Re: Unstableness in grant table block drivers
  2005-04-18 16:38   ` Christopher Clark
@ 2005-04-18 16:45     ` Ryan Harper
  2005-04-18 20:51     ` Ryan Harper
  1 sibling, 0 replies; 42+ messages in thread
From: Ryan Harper @ 2005-04-18 16:45 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

* Christopher Clark <christopher.w.clark@gmail.com> [2005-04-18 11:37]:
> > > Ryan: is this an SMP guest?
> > 
> > Yes, that only shows up when trying to boot an SMP guest.
> 
> Does the crash only occur when trying to boot an SMP guest - ie. do UP
> guests start correctly?

No, all domU's, whether SMP or UP crash the same way.

> Ryan and Anthony: I've attached a patch that I'd like you to apply to
> your unstable tree -- it just printk's almost everything so I can get
> an idea of the code path you're running.
> Alternatively, the three .c files modified by the patch are also
> attached - they're taken from 2005-04-14 unstable and you should be
> able to just replace the files in your tree.
> 
> After changing your tree and rebuilding, please send the console logs
> from boot onwards for xen/dom0 and domU, in a uniprocessor
> configuration, both with and without using grant tables for block
> transport.

I'll try this out

> thanks

Sure.

--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* Re: Unstableness in grant table block drivers
  2005-04-18 16:38   ` Christopher Clark
  2005-04-18 16:45     ` Ryan Harper
@ 2005-04-18 20:51     ` Ryan Harper
  2005-04-20 18:52       ` Christopher Clark
  1 sibling, 1 reply; 42+ messages in thread
From: Ryan Harper @ 2005-04-18 20:51 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

[-- Attachment #1: Type: text/plain, Size: 1293 bytes --]

* Christopher Clark <christopher.w.clark@gmail.com> [2005-04-18 11:39]:
> Ryan and Anthony: I've attached a patch that I'd like you to apply to
> your unstable tree -- it just printk's almost everything so I can get
> an idea of the code path you're running.
> Alternatively, the three .c files modified by the patch are also
> attached - they're taken from 2005-04-14 unstable and you should be
> able to just replace the files in your tree.
> 
> After changing your tree and rebuilding, please send the console logs
> from boot onwards for xen/dom0 and domU, in a uniprocessor
> configuration, both with and without using grant tables for block
> transport.

I've applied the patch and I have a bunch of logs.

1) domU boot output when dom0up boots domUup
2) domU boot output when dom0up boots domUsmp
3) xen console output for 1) and 2) 
4) domU boot output when dom0smp boots domUup
5) domU boot output when dom0smp boots domUsmp
6) xen console output for 4) and 5) 

In the above cases, dom0up was simulated with maxcpu=1, as I still don't
have that UP box setup.  If you can't find anything in these logs then
I'll go get a real UP box and repeat the dumps.

--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

[-- Attachment #2: grant_dom0up_boot_domU_up.log --]
[-- Type: text/plain, Size: 14031 bytes --]

Script started on Mon Apr 18 15:41:21 2005
(hungerforce) root # /e2\b\b\be2fsck /etc/xen/roots/debian_sarge_dom2_512M && xm create /etc/x xen/debian_sarge_dom2_512M -c^[M\b\b\b\b\b\b\b\b 
  
e2fsck 1.35 (28-Feb-2004) 
/etc/xen/roots/debian_sarge_dom2_512M: clean, 37422/131072 files, 452698/524288 blocks 
Using config file "/etc/xen/debian_sarge_dom2_512M". 
Started domain debian_sarge_2, console on port 9601 
************ REMOTE CONSOLE: CTRL-] TO QUIT ******** 
Linux version 2.6.11-xenU (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 Mon Apr 18 15:16:40 CDT 2005
 BIOS-provided physical RAM map:
  Xen: 0000000000000000 - 0000000008000000 (usable)
 128MB LOWMEM available.
 DMI not present.
 IRQ lockup detection disabled
 Allocating PCI resources starting at 08000000 (gap: 08000000:f8000000)
 Built 1 zonelists
 Kernel command line:  root=/dev/sda1 ro profile=2
 kernel profiling enabled (shift: 2)
 Initializing CPU#0
 PID hash table entries: 1024 (order: 10, 16384 bytes)
 Xen reported: 866.321 MHz processor.
 Using tsc for high-res timesource
 Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
 Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
 Memory: 125376k/131072k available (1646k kernel code, 5504k reserved, 472k data, 108k init, 0k highmem)
 Checking if this processor honours the WP bit even in supervisor mode... Ok.
 Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
 CPU: L1 I cache: 16K, L1 D cache: 16K
 CPU: L2 cache: 256K
 CPU: Intel Pentium III (Coppermine) stepping 06
 Enabling fast FPU save and restore... done.
 Enabling unmasked SIMD FPU exception support... done.
 Checking 'hlt' instruction... disabled
 NET: Registered protocol family 16
 xen_mem: Initialising balloon driver.
 Grant table initialized
 Initializing Cryptographic API
 io scheduler noop registered
 io scheduler anticipatory registered
 io scheduler deadline registered
 io scheduler cfq registered
 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
 Xen virtual console successfully installed as tty1
 Event-channel device installed.
 Blkif frontend is using grant tables.
 xen_blk: Initialising virtual block device driver
 cwc:wait_for_blkif: in
 cwc:send_driver_status: ctrl_if_send_message_block
 cwc:blkif_ctrlif_rx: called
 cwc:blkif_status: status: 1
 cwc:blkif_disconnect: called
 cwc:blkif_send_interface_connect: ctrl_if_send_message_block
 cwc:blkif_ctrlif_rx: called
 cwc:blkif_status: status: 2
 cwc:blkif_connect: in
 cwc:blkif_connect: connected
 cwc:blkif_control_probe_send: grant access to buf:37f85
 cwc:blkif_control_send: in
 cwc:blkif_control_send: pre spin_lock_irqsave
 cwc:blkif_control_send: post spin_lock_irqsave
 cwc:blkif_control_send: spin_unlock_irqrestore 2
 cwc:wait_for_blkif: out
 xen_net: Initialising virtual ethernet driver.
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_control_send: out
 cwc:blkif_connect: pre spin_lock_irq
 cwc:blkif_connect: post spin_lock_irq
 cwc:blkif_connect: spin_unlock_irq
 NET: Registered protocol family 2
 IP: routing cache hash table of 1024 buckets, 8Kbytes
 TCP established hash table entries: 8192 (order: 4, 65536 bytes)
 TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
 TCP: Hash tables configured (established 8192 bind 8192)
 NET: Registered protocol family 1
 NET: Registered protocol family 17
 cwc:blkif_open: called
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_release: called
 cwc:blkif_control_probe_send: grant access to buf:19e9
 cwc:blkif_control_send: in
 cwc:blkif_control_send: pre spin_lock_irqsave
 cwc:blkif_control_send: post spin_lock_irqsave
 cwc:blkif_control_send: spin_unlock_irqrestore 2
 cwc:blkif_open: called
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_control_send: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 kjournald starting.  Commit interval 5 seconds
 EXT3-fs: mounted filesystem with ordered data mode.
 VFS: Mounted root (ext3 filesystem) readonly.
 Freeing unused kernel memory: 108k freed
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 Warning: unable to open an initial console.
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 Kernel panic - not syncing: No init found.  Try passing init 
************ REMOTE CONSOLE EXITED ***************** 
(hungerforce) root # 
Script done on Mon Apr 18 15:41:40 2005

[-- Attachment #3: grant_dom0up_boot_domU_smp.log --]
[-- Type: text/plain, Size: 12960 bytes --]

Script started on Mon Apr 18 15:42:14 2005
(hungerforce) root # /e2\b\b\be2fsck /etc/xen/roots/debian_sarge_dom2_512M && xm create /etc/x xen/debian_sarge_dom2_512M -c^[M\b\b\b\b\b\b\b\b 
  
e2fsck 1.35 (28-Feb-2004) 
/etc/xen/roots/debian_sarge_dom2_512M: clean, 37422/131072 files, 452698/524288 blocks 
Using config file "/etc/xen/debian_sarge_dom2_512M". 
Started domain debian_sarge_2, console on port 9602 
************ REMOTE CONSOLE: CTRL-] TO QUIT ******** 
Linux version 2.6.11-xenU-smp (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 SMP Mon Apr 18 15:19:49 CDT 2005
 BIOS-provided physical RAM map:
  Xen: 0000000000000000 - 0000000008000000 (usable)
 128MB LOWMEM available.
 DMI not present.
 IRQ lockup detection disabled
 Allocating PCI resources starting at 08000000 (gap: 08000000:f8000000)
 Built 1 zonelists
 Kernel command line:  root=/dev/sda1 ro profile=2
 kernel profiling enabled (shift: 2)
 Initializing CPU#0
 PID hash table entries: 1024 (order: 10, 16384 bytes)
 Xen reported: 866.321 MHz processor.
 Using tsc for high-res timesource
 Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
 Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
 Memory: 125088k/131072k available (1643k kernel code, 5800k reserved, 444k data, 136k init, 0k highmem)
 Checking if this processor honours the WP bit even in supervisor mode... Ok.
 Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
 CPU: L1 I cache: 16K, L1 D cache: 16K
 CPU: L2 cache: 256K
 Enabling fast FPU save and restore... done.
 Enabling unmasked SIMD FPU exception support... done.
 Checking 'hlt' instruction... disabled
 CPU0: Intel Pentium III (Coppermine) stepping 06
 per-CPU timeslice cutoff: 731.68 usecs.
 task migration cache decay timeout: 1 msecs.
 Booting processor 1/1 eip c0100010
 Initializing CPU#1
 CPU: L1 I cache: 16K, L1 D cache: 16K
 CPU: L2 cache: 256K
 CPU1: Intel Pentium III (Coppermine) stepping 06
 Booting processor 2/2 eip c0100010
 Initializing CPU#2
 CPU: L1 I cache: 16K, L1 D cache: 16K
 CPU: L2 cache: 256K
 CPU2: Intel Pentium III (Coppermine) stepping 06
 Booting processor 3/3 eip c0100010
 Initializing CPU#3
 CPU: L1 I cache: 16K, L1 D cache: 16K
 CPU: L2 cache: 256K
 CPU3: Intel Pentium III (Coppermine) stepping 06
 Total of 4 processors activated (6055.52 BogoMIPS).
 Brought up 4 CPUs
 NET: Registered protocol family 16
 xen_mem: Initialising balloon driver.
 Grant table initialized
 Initializing Cryptographic API
 io scheduler noop registered
 io scheduler anticipatory registered
 io scheduler deadline registered
 io scheduler cfq registered
 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
 Xen virtual console successfully installed as tty1
 Event-channel device installed.
 Blkif frontend is using grant tables.
 xen_blk: Initialising virtual block device driver
 cwc:wait_for_blkif: in
 cwc:send_driver_status: ctrl_if_send_message_block
 cwc:blkif_ctrlif_rx: called
 cwc:blkif_status: status: 1
 cwc:blkif_disconnect: called
 cwc:blkif_send_interface_connect: ctrl_if_send_message_block
 cwc:blkif_ctrlif_rx: called
 cwc:blkif_status: status: 2
 cwc:blkif_connect: in
 cwc:blkif_connect: connected
 cwc:blkif_control_probe_send: grant access to buf:c17
 cwc:blkif_control_send: in
 cwc:blkif_control_send: pre spin_lock_irqsave
 cwc:blkif_control_send: post spin_lock_irqsave
 cwc:blkif_control_send: spin_unlock_irqrestore 2
 cwc:wait_for_blkif: out
 xen_net: Initialising virtual ethernet driver.
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_control_send: out
 cwc:blkif_connect: pre spin_lock_irq
 cwc:blkif_connect: post spin_lock_irq
 cwc:blkif_connect: spin_unlock_irq
 NET: Registered protocol family 2
 IP: routing cache hash table of 512 buckets, 8Kbytes
 TCP established hash table entries: 8192 (order: 5, 131072 bytes)
 TCP bind hash table entries: 8192 (order: 4, 98304 bytes)
 TCP: Hash tables configured (established 8192 bind 8192)
 NET: Registered protocol family 1
 NET: Registered protocol family 17
 cwc:blkif_open: called
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_release: called
 cwc:blkif_control_probe_send: grant access to buf:37dcb
 cwc:blkif_control_send: in
 cwc:blkif_control_send: pre spin_lock_irqsave
 cwc:blkif_control_send: post spin_lock_irqsave
 cwc:blkif_control_send: spin_unlock_irqrestore 2
 cwc:blkif_open: called
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_control_send: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 kjournald starting.  Commit interval 5 seconds
 EXT3-fs: mounted filesystem with ordered data mode.
 VFS: Mounted root (ext3 filesystem) readonly.
 Freeing unused kernel memory: 136k freed
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 Warning: unable to open an initial console.
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 Kernel panic - not syncing: No init found.  Try passing init 
************ REMOTE CONSOLE EXITED ***************** 
(hungerforce) root # 
Script done on Mon Apr 18 15:42:25 2005

[-- Attachment #4: grant_xen_dom0up_boot_domUup_and_dom0up_boot_domUsmp.log --]
[-- Type: text/plain, Size: 96344 bytes --]

 __  __            _____  ___         _                _ 
 \ \/ /___ _ __   |___ / / _ \     __| | _____   _____| |
  \  // _ \ '_ \    |_ \| | | |__ / _` |/ _ \ \ / / _ \ |
  /  \  __/ | | |  ___) | |_| |__| (_| |  __/\ V /  __/ |
 /_/\_\___|_| |_| |____(_)___/    \__,_|\___| \_/ \___|_|
                                                         
 http://www.cl.cam.ac.uk/netos/xen
 University of Cambridge Computer Laboratory

 Xen version 3.0-devel (rharper@localdomain) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) Mon Apr 18 15:12:11 CDT 2005
 Latest ChangeSet: information unavailable

(XEN) Physical RAM map:
(XEN)  0000000000000000 - 000000000009dc00 (usable)
(XEN)  000000000009dc00 - 00000000000a0000 (reserved)
(XEN)  00000000000e0000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 0000000037fed140 (usable)
(XEN)  0000000037fed140 - 0000000037ff0000 (ACPI data)
(XEN)  0000000037ff0000 - 0000000038000000 (reserved)
(XEN)  00000000fec00000 - 0000000100000000 (reserved)
(XEN) System RAM: 895MB (917032kB)
(XEN) Xen heap: 10MB (10740kB)
(XEN) CPU0: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) found SMP MP-table at 0009ddd0
(XEN) ACPI: RSDP (v000 IBM                                       ) @ 0x000fdfd0
(XEN) ACPI: RSDT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37feff80
(XEN) ACPI: FADT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37feff00
(XEN) ACPI: MADT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37fefe80
(XEN) ACPI: DSDT (v001 IBM    SERTOPAZ 0x00001000 MSFT 0x0100000b) @ 0x00000000
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x00] lapic_id[0x03] enabled)
(XEN) Processor #3 Pentium(tm) Pro APIC version 17
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) Processor #0 Pentium(tm) Pro APIC version 17
(XEN) Using ACPI for processor (LAPIC) configuration information
(XEN) Intel MultiProcessor Specification v1.4
(XEN)     Virtual Wire compatibility mode.
(XEN) OEM ID: IBM ENSW Product ID: xSeries 220  APIC at: 0xFEE00000
(XEN) I/O APIC #14 Version 17 at 0xFEC00000.
(XEN) I/O APIC #13 Version 17 at 0xFEC01000.
(XEN) Enabling APIC mode: Flat.	Using 2 I/O APICs
(XEN) Processors: 2
(XEN) Using scheduler: Borrowed Virtual Time (bvt)
(XEN) Initializing CPU#0
(XEN) Detected 866.321 MHz processor.
(XEN) CPU0: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) CPU0 booted
(XEN) enabled ExtINT on CPU#0
(XEN) ESR value before enabling vector: 00000000
(XEN) ESR value after enabling vector: 00000000
(XEN) Booting processor 1/0 eip 90000
(XEN) Initializing CPU#1
(XEN) masked ExtINT on CPU#1
(XEN) ESR value before enabling vector: 00000000
(XEN) ESR value after enabling vector: 00000000
(XEN) CPU1: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) CPU1 has booted.
(XEN) Total of 2 processors activated.
(XEN) ENABLING IO-APIC IRQs
(XEN) Setting 14 in the phys_id_present_map
(XEN) ...changing IO-APIC physical APIC ID to 14 ... ok.
(XEN) Setting 13 in the phys_id_present_map
(XEN) ...changing IO-APIC physical APIC ID to 13 ... ok.
(XEN) init IO_APIC IRQs
(XEN) vector_irq[49] = 1
(XEN) vector_irq[51] = 3
(XEN) vector_irq[59] = 4
(XEN) vector_irq[61] = 6
(XEN) vector_irq[69] = 7
(XEN) vector_irq[71] = 8
(XEN) vector_irq[79] = 10
(XEN) vector_irq[81] = 12
(XEN) vector_irq[89] = 13
(XEN) vector_irq[91] = 14
(XEN) vector_irq[99] = 27
(XEN) vector_irq[a1] = 28
(XEN) ..TIMER: vector=0x41 pin1=2 pin2=-1
(XEN) ..MP-BIOS bug: 8254 timer not connected to IO-APIC
(XEN) ...trying to set up timer (IRQ0) through the 8259A ...  failed.
(XEN) ...trying to set up timer as Virtual Wire IRQ... works.
(XEN) number of MP IRQ sources: 13.
(XEN) number of IO-APIC #14 registers: 16.
(XEN) number of IO-APIC #13 registers: 16.
(XEN) testing the IO APIC.......................
(XEN) 
(XEN) IO APIC #14......
(XEN) .... register #00: 0E000000
(XEN) .......    : physical APIC id: 0E
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 0E000000
(XEN) .......     : arbitration: 0E
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 003 03  0    0    0   0   0    1    1    49
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 003 03  0    0    0   0   0    1    1    51
(XEN)  04 003 03  0    0    0   0   0    1    1    59
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 003 03  0    0    0   0   0    1    1    61
(XEN)  07 003 03  0    0    0   0   0    1    1    69
(XEN)  08 003 03  0    0    0   0   0    1    1    71
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 003 03  1    1    0   1   0    1    1    79
(XEN)  0b 000 00  1    0    0   0   0    0    0    00
(XEN)  0c 003 03  0    0    0   0   0    1    1    81
(XEN)  0d 003 03  0    0    0   0   0    1    1    89
(XEN)  0e 003 03  0    0    0   0   0    1    1    91
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) 
(XEN) IO APIC #13......
(XEN) .... register #00: 0D000000
(XEN) .......    : physical APIC id: 0D
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 0D000000
(XEN) .......     : arbitration: 0D
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 000 00  1    0    0   0   0    0    0    00
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 000 00  1    0    0   0   0    0    0    00
(XEN)  04 0D7 07  1    0    0   0   0    1    2    55
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 0F6 06  1    0    0   0   0    0    2    48
(XEN)  07 0D7 07  1    0    0   0   0    0    2    EA
(XEN)  08 000 00  1    0    0   0   0    0    0    00
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 000 00  1    0    0   0   0    0    0    00
(XEN)  0b 003 03  1    1    0   1   0    1    1    99
(XEN)  0c 003 03  1    1    0   1   0    1    1    A1
(XEN)  0d 000 00  1    0    0   0   0    0    0    00
(XEN)  0e 000 00  1    0    0   0   0    0    0    00
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) IRQ to pin mappings:
(XEN) IRQ0 -> 0:2
(XEN) IRQ1 -> 0:1
(XEN) IRQ3 -> 0:3
(XEN) IRQ4 -> 0:4
(XEN) IRQ6 -> 0:6
(XEN) IRQ7 -> 0:7
(XEN) IRQ8 -> 0:8
(XEN) IRQ10 -> 0:10
(XEN) IRQ12 -> 0:12
(XEN) IRQ13 -> 0:13
(XEN) IRQ14 -> 0:14
(XEN) IRQ27 -> 1:11
(XEN) IRQ28 -> 1:12
(XEN) .................................... done.
(XEN) Using local APIC timer interrupts.
(XEN) Calibrating APIC timer for CPU0...
(XEN) ..... CPU speed is 866.2623 MHz.
(XEN) ..... Bus speed is 133.2710 MHz.
(XEN) ..... bus_scale = 0x0000887A
(XEN) checking TSC synchronization across CPUs: passed.
(XEN) Time init:
(XEN) .... System Time: 12941301ns
(XEN) .... cpu_freq:    00000000:33A3063C
(XEN) .... scale:       00000001:27808C52
(XEN) .... Wall Clock:  1113856779s 560000us
(XEN) PCI: PCI BIOS revision 2.10 entry at 0xfd5dc, last bus=1
(XEN) PCI: Using configuration type 1
(XEN) PCI: Probing PCI hardware
(XEN) PCI: Probing PCI hardware (bus 00)
(XEN) PCI: Discovered peer bus 01
(XEN) PCI->APIC IRQ transform: (B0,I2,P0) -> 27
(XEN) PCI->APIC IRQ transform: (B0,I15,P0) -> 10
(XEN) PCI->APIC IRQ transform: (B1,I3,P0) -> 28
(XEN) mtrr: v2.0 (20020519)
(XEN) (file=grant_table.c, line=1253) Grant table init
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Xen-ELF header found: 'GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0xC0000000,LOADER=generic'
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   10000000->20000000 (65536 pages to be allocated)
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: c0100000->c05694c4
(XEN)  Init. ramdisk: c056a000->c056a000
(XEN)  Phys-Mach map: c056a000->c05ea000
(XEN)  Page tables:   c05ea000->c05ed000
(XEN)  Start info:    c05ed000->c05ee000
(XEN)  Boot stack:    c05ee000->c05ef000
(XEN)  TOTAL:         c0000000->c0800000
(XEN)  ENTRY ADDRESS: c0100000
(XEN) Scrubbing Free RAM: .........done.
(XEN) *** Serial input -> DOM0 (type 'CTRL-x' three times to switch input to Xen).
Linux version 2.6.11-xen0 (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 Mon Apr 18 15:15:25 CDT 2005
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000020000000 (usable)
512MB LOWMEM available.
DMI 2.3 present.
IRQ lockup detection disabled
Allocating PCI resources starting at 20000000 (gap: 20000000:e0000000)
Built 1 zonelists
Kernel command line: root=/dev/sda2 ro console=tty0
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 65536 bytes)
Xen reported: 866.321 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 513536k/524288k available (2933k kernel code, 10512k reserved, 1021k data, 320k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: Intel Pentium III (Coppermine) stepping 06
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
NET: Registered protocol family 16
PCI: Using configuration type Xen
xen_mem: Initialising balloon driver.
SCSI subsystem initialized
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Probing PCI hardware (bus 01)
PCI: Probing PCI hardware
Grant table initialized
IA-32 Microcode Update Driver: v1.14-xen <tigran@veritas.com>
Initializing Cryptographic API
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
HP CISS Driver (v 2.6.4)
Intel(R) PRO/1000 Network Driver - version 5.6.10.1-k2
Copyright (c) 1999-2004 Intel Corporation.
pcnet32.c:v1.30i 06.28.2004 tsbogend@alpha.franken.de
e100: Intel(R) PRO/100 Network Driver, 3.3.6-k2-NAPI
e100: Copyright(c) 1999-2004 Intel Corporation
PCI: Obtained IRQ 27 for device 0000:00:02.0
e100: eth0: e100_probe: addr 0xfeb7f000, irq 27, MAC addr 00:02:55:C8:07:57
Xen virtual console successfully installed as ttyS0
Event-channel device installed.
Blkif backend is using grant tables.
Initialising Xen netif backend
Blkif frontend is using grant tables.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SvrWks OSB4: IDE controller at PCI slot 0000:00:0f.1
SvrWks OSB4: chipset revision 0
SvrWks OSB4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x0700-0x0707, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0x0708-0x070f, BIOS settings: hdc:pio, hdd:pio
hda: LTN485S, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: ATAPI 48X CD-ROM drive, 120kB Cache, (U)DMA
Uniform CD-ROM driver Revision: 3.20
PCI: Obtained IRQ 28 for device 0000:01:03.0
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
        <Adaptec aic7892 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

(scsi0:A:6): 80.000MB/s transfers (40.000MHz, offset 63, 16bit)
  Vendor: IBM-PSG   Model: DDYS-T36950N  M   Rev: S9HA
  Type:   Direct-Access                      ANSI SCSI revision: 03
scsi0:A:6:0: Tagged Queuing enabled.  Depth 32
Red Hat/Adaptec aacraid driver (1.1.2-lk2 Apr 18 2005)
3ware Storage Controller device driver for Linux v1.26.02.000.
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
SCSI device sda: drive cache: write through
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
SCSI device sda: drive cache: write through
 sda: sda1 sda2
Attached scsi disk sda at scsi0, channel 0, id 6, lun 0
Fusion MPT base driver 3.01.18
Copyright (c) 1999-2004 LSI Logic Corporation
Fusion MPT SCSI Host driver 3.01.18
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
md: raid0 personality registered as nr 2
md: raid1 personality registered as nr 3
md: raid5 personality registered as nr 4
raid5: automatically using best checksumming function: pIII_sse
   pIII_sse  :  1132.000 MB/sec
raid5: using function: pIII_sse (1132.000 MB/sec)
md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com
NET: Registered protocol family 2
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
Bridge firewalling registered
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 320k freed
Adding 1951856k swap on /dev/sda1.  Priority:-1 extents:1
EXT3 FS on sda2, internal journal
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Maximum main memory to use for agp memory: 440M
agpgart: unable to determine aperture size.
agpgart: agp_backend_initialize() failed.
agpgart-serverworks: probe of 0000:00:00.0 failed with error -22
agpgart: Maximum main memory to use for agp memory: 440M
agpgart: unable to determine aperture size.
agpgart: agp_backend_initialize() failed.
agpgart-serverworks: probe of 0000:00:00.1 failed with error -22
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
device eth0 entered promiscuous mode
xen-br0: port 1(eth0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 1(eth0) entering forwarding state
device vif1.0 entered promiscuous mode
xen-br0: port 2(vif1.0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 2(vif1.0) entering forwarding state
cwc:dispatch_probe:in id:0
cwc:dispatch_probe:mid
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_probe:vbd_probe
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:out response:2
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19e9000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19e5000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_probe:in id:0
cwc:dispatch_probe:mid
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_probe:vbd_probe
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:out response:2
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19e5400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19e5800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19e5c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19e4800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19dfc00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:1067e800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:1067fc00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10680400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:8
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10680400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10680400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10681400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10681400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10681400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10681400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10682400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10682400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:in
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:4
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10682400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10682400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10683400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10683400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:5
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10683800 populated 2 sects
cwc:dispatch_rw_block_io: buf:10683800 populated 2 sects
cwc:dispatch_rw_block_io: buf:10684800 populated 2 sects
cwc:dispatch_rw_block_io: buf:10684800 populated 2 sects
cwc:dispatch_rw_block_io: buf:10684800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:7
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10684400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10685400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10685400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10685400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10685400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10686400 populated 2 sects
cwc:dispatch_rw_block_io: buf:10686400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10687c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10689400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:1068a400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:in
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:2
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19b8000 populated 8 sects
cwc:dispatch_rw_block_io: buf:19b7000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:2
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19b6c00 populated 8 sects
cwc:dispatch_rw_block_io: buf:1068dc00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:5
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19b5000 populated 8 sects
cwc:dispatch_rw_block_io: buf:19b4000 populated 8 sects
cwc:dispatch_rw_block_io: buf:19b3000 populated 8 sects
cwc:dispatch_rw_block_io: buf:19b2000 populated 8 sects
cwc:dispatch_rw_block_io: buf:19b1000 populated 6 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:1068fc00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10690400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10691800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:2
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:in
cwc:fast_flush_area:out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10692c00 populated 2 sects
cwc:dispatch_rw_block_io: buf:10692c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10693c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:10695400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:4
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19b0800 populated 8 sects
cwc:dispatch_rw_block_io: buf:19af800 populated 8 sects
cwc:dispatch_rw_block_io: buf:19ae800 populated 8 sects
cwc:dispatch_rw_block_io: buf:10696800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (1) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
device vif1.0 left promiscuous mode
xen-br0: port 2(vif1.0) entering disabled state
xen-br0: port 2(vif1.0) entering disabled state
device vif2.0 entered promiscuous mode
xen-br0: port 2(vif2.0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 2(vif2.0) entering forwarding state
cwc:dispatch_probe:in id:0
cwc:dispatch_probe:mid
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_probe:vbd_probe
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:out response:2
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:333aa000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37dcb000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_probe:in id:0
cwc:dispatch_probe:mid
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_probe:vbd_probe
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:out response:2
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37dc9400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37dc9800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37dc9c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37dc8800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f46c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:1067d800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f45c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f44400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:8
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f44400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37f44400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37f43400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37f43400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37f43400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37f43400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37f41400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37f41400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (2) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (2) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f40c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f3e400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f3d400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:2
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:3339a000 populated 8 sects
cwc:dispatch_rw_block_io: buf:33399000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (2) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:2
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:3334cc00 populated 8 sects
cwc:dispatch_rw_block_io: buf:37f39c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (2) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:5
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:3334b000 populated 8 sects
cwc:dispatch_rw_block_io: buf:3334a000 populated 8 sects
cwc:dispatch_rw_block_io: buf:33349000 populated 8 sects
cwc:dispatch_rw_block_io: buf:33348000 populated 8 sects
cwc:dispatch_rw_block_io: buf:33347000 populated 6 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (2) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:33395c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:33394400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:33393800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:2
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:33392c00 populated 2 sects
cwc:dispatch_rw_block_io: buf:33392c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:33391c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
stsotopp_t_hits_hcispu_ dcipus abdlei_salboclae_llo_caAl_PAPIICC

ssmpt_soep_ndt_hiss_tcpou pd disaisbaleb_lloceal__AlPIoCc
al_APIC
cwc:dispatch_rw_block_io: 1 bios submitted

[-- Attachment #5: grant_dom0_smp_boot_domU_up.log --]
[-- Type: text/plain, Size: 14038 bytes --]

Script started on Mon Apr 18 15:32:21 2005
(hungerforce) root # /e2\b\b\be2fsck /etc/xen/roots/debian_sarge_dom2_512M && xm create /etc/x xen/debian_sarge_dom2_512M -c^[M\b\b\b\b\b\b\b\b 
  
e2fsck 1.35 (28-Feb-2004) 
/etc/xen/roots/debian_sarge_dom2_512M: clean, 37422/131072 files, 452698/524288 blocks 
Using config file "/etc/xen/debian_sarge_dom2_512M". 
Started domain debian_sarge_2, console on port 9602 
************ REMOTE CONSOLE: CTRL-] TO QUIT ******** 
Linux version 2.6.11-xenU (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 Mon Apr 18 15:16:40 CDT 2005
 BIOS-provided physical RAM map:
  Xen: 0000000000000000 - 0000000008000000 (usable)
 128MB LOWMEM available.
 DMI not present.
 IRQ lockup detection disabled
 Allocating PCI resources starting at 08000000 (gap: 08000000:f8000000)
 Built 1 zonelists
 Kernel command line:  root=/dev/sda1 ro profile=2
 kernel profiling enabled (shift: 2)
 Initializing CPU#0
 PID hash table entries: 1024 (order: 10, 16384 bytes)
 Xen reported: 866.292 MHz processor.
 Using tsc for high-res timesource
 Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
 Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
 Memory: 125376k/131072k available (1646k kernel code, 5504k reserved, 472k data, 108k init, 0k highmem)
 Checking if this processor honours the WP bit even in supervisor mode... Ok.
 Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
 CPU: L1 I cache: 16K, L1 D cache: 16K
 CPU: L2 cache: 256K
 CPU: Intel Pentium III (Coppermine) stepping 06
 Enabling fast FPU save and restore... done.
 Enabling unmasked SIMD FPU exception support... done.
 Checking 'hlt' instruction... disabled
 NET: Registered protocol family 16
 xen_mem: Initialising balloon driver.
 Grant table initialized
 Initializing Cryptographic API
 io scheduler noop registered
 io scheduler anticipatory registered
 io scheduler deadline registered
 io scheduler cfq registered
 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
 Xen virtual console successfully installed as tty1
 Event-channel device installed.
 Blkif frontend is using grant tables.
 xen_blk: Initialising virtual block device driver
 cwc:wait_for_blkif: in
 cwc:send_driver_status: ctrl_if_send_message_block
 cwc:blkif_ctrlif_rx: called
 cwc:blkif_status: status: 1
 cwc:blkif_disconnect: called
 cwc:blkif_send_interface_connect: ctrl_if_send_message_block
 cwc:blkif_ctrlif_rx: called
 cwc:blkif_status: status: 2
 cwc:blkif_connect: in
 cwc:blkif_connect: connected
 cwc:blkif_control_probe_send: grant access to buf:1945
 cwc:blkif_control_send: in
 cwc:blkif_control_send: pre spin_lock_irqsave
 cwc:blkif_control_send: post spin_lock_irqsave
 cwc:blkif_control_send: spin_unlock_irqrestore 2
 cwc:wait_for_blkif: out
 xen_net: Initialising virtual ethernet driver.
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_control_send: out
 cwc:blkif_connect: pre spin_lock_irq
 cwc:blkif_connect: post spin_lock_irq
 cwc:blkif_connect: spin_unlock_irq
 NET: Registered protocol family 2
 IP: routing cache hash table of 1024 buckets, 8Kbytes
 TCP established hash table entries: 8192 (order: 4, 65536 bytes)
 TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
 TCP: Hash tables configured (established 8192 bind 8192)
 NET: Registered protocol family 1
 NET: Registered protocol family 17
 cwc:blkif_open: called
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_release: called
 cwc:blkif_control_probe_send: grant access to buf:37f66
 cwc:blkif_control_send: in
 cwc:blkif_control_send: pre spin_lock_irqsave
 cwc:blkif_control_send: post spin_lock_irqsave
 cwc:blkif_control_send: spin_unlock_irqrestore 2
 cwc:blkif_open: called
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_control_send: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 kjournald starting.  Commit interval 5 seconds
 EXT3-fs: mounted filesystem with ordered data mode.
 VFS: Mounted root (ext3 filesystem) readonly.
 Freeing unused kernel memory: 108k freed
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 Warning: unable to open an initial console.
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 0
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 cwc:do_blkif_request: called
 cwc:blkif_queue_request: in blkif_state:2
 cwc:blkif_queue_request: out
 cwc:blkif_int: pre spin_lock_irqsave
 cwc:blkif_int: post spin_lock_irqsave
 cwc:blkif_int: blkif_completion call id 1
 cwc:blkif_completion: in
 cwc:blkif_completion: out
 cwc:blkif_int: post loop
 cwc:blkif_int: out unlock_irq_restore
 Kernel panic - not syncing: No init found.  Try passing init 
************ REMOTE CONSOLE EXITED ***************** 
(hungerforce) root # exit 

Script done on Mon Apr 18 15:32:35 2005

[-- Attachment #6: grant_dom0_smp_boot_domU_smp.log --]
[-- Type: text/plain, Size: 11736 bytes --]

Linux version 2.6.11-xenU-smp (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 SMP Mon Apr 18 15:19:49 CDT 2005
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000008000000 (usable)
128MB LOWMEM available.
DMI not present.
IRQ lockup detection disabled
Allocating PCI resources starting at 08000000 (gap: 08000000:f8000000)
Built 1 zonelists
Kernel command line:  root=/dev/sda1 ro profile=2
kernel profiling enabled (shift: 2)
Initializing CPU#0
PID hash table entries: 1024 (order: 10, 16384 bytes)
Xen reported: 866.292 MHz processor.
Using tsc for high-res timesource
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 125088k/131072k available (1643k kernel code, 5800k reserved, 444k data, 136k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
CPU0: Intel Pentium III (Coppermine) stepping 06
per-CPU timeslice cutoff: 730.81 usecs.
task migration cache decay timeout: 1 msecs.
Booting processor 1/1 eip c0100010
Initializing CPU#1
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU1: Intel Pentium III (Coppermine) stepping 06
Booting processor 2/2 eip c0100010
Initializing CPU#2
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU2: Intel Pentium III (Coppermine) stepping 06
Booting processor 3/3 eip c0100010
Initializing CPU#3
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU3: Intel Pentium III (Coppermine) stepping 06
Total of 4 processors activated (6219.36 BogoMIPS).
Brought up 4 CPUs
NET: Registered protocol family 16
xen_mem: Initialising balloon driver.
Grant table initialized
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Xen virtual console successfully installed as tty1
Event-channel device installed.
Blkif frontend is using grant tables.
xen_blk: Initialising virtual block device driver
cwc:wait_for_blkif: in
cwc:send_driver_status: ctrl_if_send_message_block
cwc:blkif_ctrlif_rx: called
cwc:blkif_status: status: 1
cwc:blkif_disconnect: called
cwc:blkif_send_interface_connect: ctrl_if_send_message_block
cwc:blkif_ctrlif_rx: called
cwc:blkif_status: status: 2
cwc:blkif_connect: in
cwc:blkif_connect: connected
cwc:blkif_control_probe_send: grant access to buf:1048
cwc:blkif_control_send: in
cwc:blkif_control_send: pre spin_lock_irqsave
cwc:blkif_control_send: post spin_lock_irqsave
cwc:blkif_control_send: spin_unlock_irqrestore 2
cwc:wait_for_blkif: out
xen_net: Initialising virtual ethernet driver.
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 0
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:blkif_control_send: out
cwc:blkif_connect: pre spin_lock_irq
cwc:blkif_connect: post spin_lock_irq
cwc:blkif_connect: spin_unlock_irq
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 8Kbytes
TCP established hash table entries: 8192 (order: 5, 131072 bytes)
TCP bind hash table entries: 8192 (order: 4, 98304 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
NET: Registered protocol family 1
NET: Registered protocol family 17
cwc:blkif_open: called
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 0
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 0
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:blkif_release: called
cwc:blkif_control_probe_send: grant access to buf:19ae
cwc:blkif_control_send: in
cwc:blkif_control_send: pre spin_lock_irqsave
cwc:blkif_control_send: post spin_lock_irqsave
cwc:blkif_control_send: spin_unlock_irqrestore 2
cwc:blkif_open: called
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 0
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:blkif_control_send: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 136k freed
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
Warning: unable to open an initial console.
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 0
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 0
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:do_blkif_request: called
cwc:blkif_queue_request: in blkif_state:2
cwc:blkif_queue_request: out
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 0
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
cwc:blkif_int: pre spin_lock_irqsave
cwc:blkif_int: post spin_lock_irqsave
cwc:blkif_int: blkif_completion call id 1
cwc:blkif_completion: in
cwc:blkif_completion: out
cwc:blkif_int: post loop
cwc:blkif_int: out unlock_irq_restore
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.


[-- Attachment #7: grant_xen_dom0smp_boot_domUsmp_and_dom0smp_boot_domUup.log --]
[-- Type: text/plain, Size: 96796 bytes --]

md: stopping all md devices.
md: md0 switched to read-only mode.
Restarting system.
(XEN) Domain 0 shutdown: rebooting machine.
 __  __            _____  ___         _                _ 
 \ \/ /___ _ __   |___ / / _ \     __| | _____   _____| |
  \  // _ \ '_ \    |_ \| | | |__ / _` |/ _ \ \ / / _ \ |
  /  \  __/ | | |  ___) | |_| |__| (_| |  __/\ V /  __/ |
 /_/\_\___|_| |_| |____(_)___/    \__,_|\___| \_/ \___|_|
                                                         
 http://www.cl.cam.ac.uk/netos/xen
 University of Cambridge Computer Laboratory

 Xen version 3.0-devel (rharper@localdomain) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) Mon Apr 18 15:12:11 CDT 2005
 Latest ChangeSet: information unavailable

(XEN) Physical RAM map:
(XEN)  0000000000000000 - 000000000009dc00 (usable)
(XEN)  000000000009dc00 - 00000000000a0000 (reserved)
(XEN)  00000000000e0000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 0000000037fed140 (usable)
(XEN)  0000000037fed140 - 0000000037ff0000 (ACPI data)
(XEN)  0000000037ff0000 - 0000000038000000 (reserved)
(XEN)  00000000fec00000 - 0000000100000000 (reserved)
(XEN) System RAM: 895MB (917032kB)
(XEN) Xen heap: 10MB (10740kB)
(XEN) CPU0: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) found SMP MP-table at 0009ddd0
(XEN) ACPI: RSDP (v000 IBM                                       ) @ 0x000fdfd0
(XEN) ACPI: RSDT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37feff80
(XEN) ACPI: FADT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37feff00
(XEN) ACPI: MADT (v001 IBM    SERTOPAZ 0x00001000 IBM  0x45444f43) @ 0x37fefe80
(XEN) ACPI: DSDT (v001 IBM    SERTOPAZ 0x00001000 MSFT 0x0100000b) @ 0x00000000
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x00] lapic_id[0x03] enabled)
(XEN) Processor #3 Pentium(tm) Pro APIC version 17
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) Processor #0 Pentium(tm) Pro APIC version 17
(XEN) Using ACPI for processor (LAPIC) configuration information
(XEN) Intel MultiProcessor Specification v1.4
(XEN)     Virtual Wire compatibility mode.
(XEN) OEM ID: IBM ENSW Product ID: xSeries 220  APIC at: 0xFEE00000
(XEN) I/O APIC #14 Version 17 at 0xFEC00000.
(XEN) I/O APIC #13 Version 17 at 0xFEC01000.
(XEN) Enabling APIC mode: Flat.	Using 2 I/O APICs
(XEN) Processors: 2
(XEN) Using scheduler: Borrowed Virtual Time (bvt)
(XEN) Initializing CPU#0
(XEN) Detected 866.292 MHz processor.
(XEN) CPU0: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) CPU0 booted
(XEN) enabled ExtINT on CPU#0
(XEN) ESR value before enabling vector: 00000000
(XEN) ESR value after enabling vector: 00000000
(XEN) Booting processor 1/0 eip 90000
(XEN) Initializing CPU#1
(XEN) masked ExtINT on CPU#1
(XEN) ESR value before enabling vector: 00000000
(XEN) ESR value after enabling vector: 00000000
(XEN) CPU1: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
(XEN) CPU caps: 0383fbff 00000000 00000000 00000000
(XEN) CPU1 has booted.
(XEN) Total of 2 processors activated.
(XEN) ENABLING IO-APIC IRQs
(XEN) Setting 14 in the phys_id_present_map
(XEN) ...changing IO-APIC physical APIC ID to 14 ... ok.
(XEN) Setting 13 in the phys_id_present_map
(XEN) ...changing IO-APIC physical APIC ID to 13 ... ok.
(XEN) init IO_APIC IRQs
(XEN) vector_irq[49] = 1
(XEN) vector_irq[51] = 3
(XEN) vector_irq[59] = 4
(XEN) vector_irq[61] = 6
(XEN) vector_irq[69] = 7
(XEN) vector_irq[71] = 8
(XEN) vector_irq[79] = 10
(XEN) vector_irq[81] = 12
(XEN) vector_irq[89] = 13
(XEN) vector_irq[91] = 14
(XEN) vector_irq[99] = 27
(XEN) vector_irq[a1] = 28
(XEN) ..TIMER: vector=0x41 pin1=2 pin2=-1
(XEN) ..MP-BIOS bug: 8254 timer not connected to IO-APIC
(XEN) ...trying to set up timer (IRQ0) through the 8259A ...  failed.
(XEN) ...trying to set up timer as Virtual Wire IRQ... works.
(XEN) number of MP IRQ sources: 13.
(XEN) number of IO-APIC #14 registers: 16.
(XEN) number of IO-APIC #13 registers: 16.
(XEN) testing the IO APIC.......................
(XEN) 
(XEN) IO APIC #14......
(XEN) .... register #00: 0E000000
(XEN) .......    : physical APIC id: 0E
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 0E000000
(XEN) .......     : arbitration: 0E
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 003 03  0    0    0   0   0    1    1    49
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 003 03  0    0    0   0   0    1    1    51
(XEN)  04 003 03  0    0    0   0   0    1    1    59
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 003 03  0    0    0   0   0    1    1    61
(XEN)  07 003 03  0    0    0   0   0    1    1    69
(XEN)  08 003 03  0    0    0   0   0    1    1    71
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 003 03  1    1    0   1   0    1    1    79
(XEN)  0b 000 00  1    0    0   0   0    0    0    00
(XEN)  0c 003 03  0    0    0   0   0    1    1    81
(XEN)  0d 003 03  0    0    0   0   0    1    1    89
(XEN)  0e 003 03  0    0    0   0   0    1    1    91
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) 
(XEN) IO APIC #13......
(XEN) .... register #00: 0D000000
(XEN) .......    : physical APIC id: 0D
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 0D000000
(XEN) .......     : arbitration: 0D
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 000 00  1    0    0   0   0    0    0    00
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 000 00  1    0    0   0   0    0    0    00
(XEN)  04 0D7 07  1    0    0   0   0    1    2    55
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 0F6 06  1    0    0   0   0    0    2    48
(XEN)  07 0D7 07  1    0    0   0   0    0    2    EA
(XEN)  08 000 00  1    0    0   0   0    0    0    00
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 000 00  1    0    0   0   0    0    0    00
(XEN)  0b 003 03  1    1    0   1   0    1    1    99
(XEN)  0c 003 03  1    1    0   1   0    1    1    A1
(XEN)  0d 000 00  1    0    0   0   0    0    0    00
(XEN)  0e 000 00  1    0    0   0   0    0    0    00
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) IRQ to pin mappings:
(XEN) IRQ0 -> 0:2
(XEN) IRQ1 -> 0:1
(XEN) IRQ3 -> 0:3
(XEN) IRQ4 -> 0:4
(XEN) IRQ6 -> 0:6
(XEN) IRQ7 -> 0:7
(XEN) IRQ8 -> 0:8
(XEN) IRQ10 -> 0:10
(XEN) IRQ12 -> 0:12
(XEN) IRQ13 -> 0:13
(XEN) IRQ14 -> 0:14
(XEN) IRQ27 -> 1:11
(XEN) IRQ28 -> 1:12
(XEN) .................................... done.
(XEN) Using local APIC timer interrupts.
(XEN) Calibrating APIC timer for CPU0...
(XEN) ..... CPU speed is 866.2623 MHz.
(XEN) ..... Bus speed is 133.2710 MHz.
(XEN) ..... bus_scale = 0x0000887A
(XEN) checking TSC synchronization across CPUs: passed.
(XEN) Time init:
(XEN) .... System Time: 12846859ns
(XEN) .... cpu_freq:    00000000:33A2947C
(XEN) .... scale:       00000001:2783174C
(XEN) .... Wall Clock:  1113855872s 550000us
(XEN) PCI: PCI BIOS revision 2.10 entry at 0xfd5dc, last bus=1
(XEN) PCI: Using configuration type 1
(XEN) PCI: Probing PCI hardware
(XEN) PCI: Probing PCI hardware (bus 00)
(XEN) PCI: Discovered peer bus 01
(XEN) PCI->APIC IRQ transform: (B0,I2,P0) -> 27
(XEN) PCI->APIC IRQ transform: (B0,I15,P0) -> 10
(XEN) PCI->APIC IRQ transform: (B1,I3,P0) -> 28
(XEN) mtrr: v2.0 (20020519)
(XEN) (file=grant_table.c, line=1253) Grant table init
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Xen-ELF header found: 'GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0xC0000000,LOADER=generic'
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   10000000->20000000 (65536 pages to be allocated)
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: c0100000->c054e4a4
(XEN)  Init. ramdisk: c054f000->c054f000
(XEN)  Phys-Mach map: c054f000->c05cf000
(XEN)  Page tables:   c05cf000->c05d2000
(XEN)  Start info:    c05d2000->c05d3000
(XEN)  Boot stack:    c05d3000->c05d4000
(XEN)  TOTAL:         c0000000->c0800000
(XEN)  ENTRY ADDRESS: c0100000
(XEN) Scrubbing Free RAM: .........done.
(XEN) *** Serial input -> DOM0 (type 'CTRL-x' three times to switch input to Xen).
Linux version 2.6.11-xen0-smp (rharper@frylock) (gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)) #1 SMP Mon Apr 18 15:18:39 CDT 2005
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000020000000 (usable)
512MB LOWMEM available.
DMI 2.3 present.
IRQ lockup detection disabled
Allocating PCI resources starting at 20000000 (gap: 20000000:e0000000)
Built 1 zonelists
Kernel command line: root=/dev/sda2 ro console=tty0
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 65536 bytes)
Xen reported: 866.292 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 513408k/524288k available (2829k kernel code, 10696k reserved, 979k data, 348k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
CPU0: Intel Pentium III (Coppermine) stepping 06
per-CPU timeslice cutoff: 730.81 usecs.
task migration cache decay timeout: 1 msecs.
Booting processor 1/1 eip c0100010
Initializing CPU#1
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU1: Intel Pentium III (Coppermine) stepping 06
Total of 2 processors activated (3460.30 BogoMIPS).
Brought up 2 CPUs
NET: Registered protocol family 16
PCI: Using configuration type Xen
xen_mem: Initialising balloon driver.
SCSI subsystem initialized
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Probing PCI hardware (bus 01)
PCI: Probing PCI hardware
Grant table initialized
IA-32 Microcode Update Driver: v1.14-xen <tigran@veritas.com>
Initializing Cryptographic API
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
HP CISS Driver (v 2.6.4)
Intel(R) PRO/1000 Network Driver - version 5.6.10.1-k2
Copyright (c) 1999-2004 Intel Corporation.
pcnet32.c:v1.30i 06.28.2004 tsbogend@alpha.franken.de
e100: Intel(R) PRO/100 Network Driver, 3.3.6-k2-NAPI
e100: Copyright(c) 1999-2004 Intel Corporation
PCI: Obtained IRQ 27 for device 0000:00:02.0
e100: eth0: e100_probe: addr 0xfeb7f000, irq 27, MAC addr 00:02:55:C8:07:57
Xen virtual console successfully installed as ttyS0
Event-channel device installed.
Blkif backend is using grant tables.
Initialising Xen netif backend
Blkif frontend is using grant tables.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SvrWks OSB4: IDE controller at PCI slot 0000:00:0f.1
SvrWks OSB4: chipset revision 0
SvrWks OSB4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x0700-0x0707, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0x0708-0x070f, BIOS settings: hdc:pio, hdd:pio
hda: LTN485S, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: ATAPI 48X CD-ROM drive, 120kB Cache, (U)DMA
Uniform CD-ROM driver Revision: 3.20
PCI: Obtained IRQ 28 for device 0000:01:03.0
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
        <Adaptec aic7892 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

(scsi0:A:6): 80.000MB/s transfers (40.000MHz, offset 63, 16bit)
  Vendor: IBM-PSG   Model: DDYS-T36950N  M   Rev: S9HA
  Type:   Direct-Access                      ANSI SCSI revision: 03
scsi0:A:6:0: Tagged Queuing enabled.  Depth 32
Red Hat/Adaptec aacraid driver (1.1.2-lk2 Apr 18 2005)
3ware Storage Controller device driver for Linux v1.26.02.000.
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
SCSI device sda: drive cache: write through
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
SCSI device sda: drive cache: write through
 sda: sda1 sda2
Attached scsi disk sda at scsi0, channel 0, id 6, lun 0
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
md: raid0 personality registered as nr 2
md: raid1 personality registered as nr 3
md: raid5 personality registered as nr 4
raid5: automatically using best checksumming function: pIII_sse
   pIII_sse  :  1007.200 MB/sec
raid5: using function: pIII_sse (1007.200 MB/sec)
md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com
NET: Registered protocol family 2
IP: routing cache hash table of 2048 buckets, 32Kbytes
TCP established hash table entries: 131072 (order: 9, 2097152 bytes)
TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
Bridge firewalling registered
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 348k freed
Adding 1951856k swap on /dev/sda1.  Priority:-1 extents:1
EXT3 FS on sda2, internal journal
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Maximum main memory to use for agp memory: 440M
agpgart: unable to determine aperture size.
agpgart: agp_backend_initialize() failed.
agpgart-serverworks: probe of 0000:00:00.0 failed with error -22
agpgart: Maximum main memory to use for agp memory: 440M
agpgart: unable to determine aperture size.
agpgart: agp_backend_initialize() failed.
agpgart-serverworks: probe of 0000:00:00.1 failed with error -22
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
device eth0 entered promiscuous mode
xen-br0: port 1(eth0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 1(eth0) entering forwarding state
device vif1.0 entered promiscuous mode
xen-br0: port 2(vif1.0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 2(vif1.0) entering forwarding state
cwc:dispatch_probe:in id:0
cwc:dispatch_probe:mid
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_probe:vbd_probe
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:out response:2
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:19ae000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(cXE:dNi) s(paftcihle_=grrw_abntl_toackbl_e.ic,o : l1 ibinose =5s12u) bUminttmeapdpin
gc gwrc:afanstt_ flruseh_far ea(:i0n) 
for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73aa000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
(cXEwN)c :d(fisiplea=tcghra_ntr_twa_bblleo.cc, kli_nioe:=5 112 ) bUnimaops pisnubgm giratntt edr
ecwfc (:0)f faostr_f ldoumsha_airn e(a:1in)
 with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:in id:0
cwc:dispatch_probe:mid
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_probe:vbd_probe
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:out response:2
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73aa400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(XwENc):d is(pfialtceh_=rwg_rabntl_toabclek.c_,io : l1 ibnei=os5 s1u2)b Umnitmteadppi
cnwcg:f agrsat_nflutsh _arreeaf :(1i)n 
for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73aa800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(XwEc:Nd)is pa(tcfhil_rew=g_rblaontc_k_tioa:bl e1 .bico, sli nsueb=5m12i)tt eUndmapp
icnwcg:f asgtra_ntf lreuf s(1h)_a refaor: diomna
in (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73aac00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(cXE:N)d i(fsilpeat=chg_rarntw__btlabolec.k_cio,:  1li nbieos= s5u12b) mUnimatpptiedng 
grcwac:nftas rte_f f(1l)us h_foar rdoemaai:inn (1)
 with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73a8800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
(cwXcEN:)di sp(afitlec=h_grrawnt__bltocak_bilo:e 1.c , bliois nsue=b5m1i2)t teUndma
pcpwincg :gfarsta_fnlt uresf h(1_)ar efoar :doimna
in (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73a5c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(XEwNc) :(difspialet=gcrh_arntw_t_abblel.occk, _lioin:e =511 b2io)s  Usnubmmiatptepding
 gcwrc:afants rte_fflu s(1h) _foarre a:dionm
ain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:1077d800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73a4c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73a3400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (1) for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:8
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73a3400 populated 2 sects
cwc:dispatch_rw_block_io: buf:73a3400 populated 2 sects
cwc:dispatch_rw_block_io: buf:73a2400 populated 2 sects
cwc:dispatch_rw_block_io: buf:73a2400 populated 2 sects
cwc:dispatch_rw_block_io: buf:73a2400 populated 2 sects
cwc:dispatch_rw_block_io: buf:73a2400 populated 2 sects
cwc:dispatch_rw_block_io: buf:73a1400 populated 2 sects
cwc:dispatch_rw_block_io: buf:73a1400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatc(h_XrEw_Nb) l(ofcilk_ei=gora:n t_1ta blbeio.s csu,b milttiedne=
512c) wUc:nfmaapstp_infg lgusrh_aantr reea:fi (n1) 
for domain (1) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (1) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (1) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:73a0c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:739e400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:739d400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:2
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:7390000 populated 8 sects
cwc:dispatch_rw_block_io: buf:738f000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_io:in nsegs:2
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) focwrc d:ofamsaitn _(fl1us)h w_iarteah: filan
gs (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XcEwcN:d)i sp(faitlec=ghr_raw_nblto_tcabkl_ieo.c:p,o lsti nmaep=51
2) cUnwmc:adipsppatichn_g rgw_rblaonckt_i ore:fpr e(7 ) pfopoulrat e dseogsmai
n c(wc1:d)is pawtitch hha_nrwd_blle o(ck7_i)o: b
uf(:XE7N)3 8cwec:c__0g0 npttoabp_uluatnemd a8 pse_cgrtasn
t_cwrc:edf:i sppatrche_r w_sbpiln_olcko_cki
o(X:EN )b cuwcf:_:_g7n39tt9acb_0un0m paoppul_atgerad n2t_ rseectfs: po
scwtc: dspiins_lpoackt
c(h_XrwE_Nbl)oc kcw_cio::__ gnptosttab _biuo_namadp_dg_rapnta_rgeef
:c pwrc:edi spapgatectah_brlw_ebl odcke_ilo:e 1t ebios
 (XsENu) bcwmcit:_t_egndt
tab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (1) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:5
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:738d000 populated 8 sects
cwc:dispatch_rw_block_io: buf:734c000 populated 8 sects
cwc:dispatch_rw_block_io: buf:734b000 populated 8 sects
cwc:dispatch_rw_block_io: buf:734a000 populated 8 sects
cwc:dispatch_rw_block_io: buf:7349000 populated 6 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(c:XdENi)sp a(ftilceh_=rwg_rabnlotck__taibo:l e.1c,  bilosi snuebm=it5te1d2) 
cUwnmca:fpasptin_g fglursah_narte raef: in(4)
 focr wdc:odimsaipnat c(1h) _wrwi_thb lohcka_ndilo:ei (n4 n)segs
(:1XEN
) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (1) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (1) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XcENw) c(f:ifalste_f=lgrusanht__taraeab:olue.tc
, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:7397c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(XcE:dNi) s(paftcihle_=rwg_brloacntk_t_aiob:le .c1, b iols isneu=5b1mi2t) tUnemadp
cwpcin:g fgarasntt _frlueshf_ (a2re)a: ifonr
 domain (1) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:7396400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (1) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:7395800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_bl(XoEckN_) i(foil:e= gr1a bniots_t saubbmlitete.dc
c,wc :lifnea=st5_f1l2)u shU_nmaaprpienag :ginr
acwnc:td isrepfa (tc2h) _rfwor_ bldocok_miaion:i n(1 ) nwseigst:h 2hand
le (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN)c (wcf:ilfeas=gtr_falunst_h_taabrelae.:cou,t
 line=401) Mapping grant ref (3) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:7394c00 populated 2 sects
cwc:dispatch_rw_block_io: buf:7394c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:dispatch_rw_block_i(XoE:iNn)  (fnilsee=ggrasn:1t
cw_cta:bfalste_f.lucsh,_a rela:iinen=
512) Unmapping grant ref (3) for domain (1) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEcwNc):f ast(_ffliluesh=_graraena:to_tuabtl
e.c, line=401) Mapping grant ref (2) for domain (1) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:7393c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bio(s XsENu)bm i(tftilede=g
racnwct:_tfabales.ct,_f lulsinhe_a=re5a12:) iUnnm
apping grant ref (2) for domain (1) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
stosp_tthoip_sth_isc_cppu udi sdiasabblel_leoc_alolc_AaPIlC_
APIC
ssmtp_osep_ndt_hstiops d_icpsuab led_liocsaablle__lAocPalI_AC
PIC
device vif1.0 left promiscuous mode
xen-br0: port 2(vif1.0) entering disabled state
xen-br0: port 2(vif1.0) entering disabled state
device vif2.0 entered promiscuous mode
xen-br0: port 2(vif2.0) entering learning state
xen-br0: topology change detected, propagating
xen-br0: port 2(vif2.0) entering forwarding state
cwc:dispatch_probe:in id:0
cwc:dispatch_probe:mid
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_probe:vbd_probe
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:out response:2
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f66000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(c:XdENi)sp a(ftichl_rew_=blgroacknt__iot: a1ble .cb, ilosi snubemi=tt5ed12
c)w Ucnm:afapspitng_ gfrluashn_t arerf e(a0): fiorn dom
ain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f62000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(XEwNc:)d (ifspiatlche_=grrw_anbtlo_ckt_iao:b 1le .bic,o s lsinue=b5mi1tt2e) dUn
macppwincg:f asgtra_ntf relf u(0s)h f_ora dromeaian :(in2
) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:in id:0
cwc:dispatch_probe:mid
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_probe:vbd_probe
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_probe:out response:2
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f62400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(wXEcN): d(fiilse=pgatracnh_trw__btlaboclk_ei.co,:  l1i bnei=os51 2)s ubUmnmiaptpitnge dgra
cnwtc: farste_f f(1l)us hfo_r adormeaai:n i(n2) w
ith handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f62800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(XwEc:Nd) i(sfiplea=tcgh_rraw_nbltoc_k_tioa:bl e1 .bic,o s lsinuebm=it5t12ed)
 cUnwmacp:fpasitng_ gfrluasnth _arreeaf :(1i)n 
for domain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f62c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(wXc:EdiNs)pa tc(hf_riw_lbe=lgorcankt__tiabole:. 1c b,i loinse s=u5bm12i)tt eUndmap
cpwci:ngfa sgrtan_tfl uresfh_ (a1re)a: ifonr
 domain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f61800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
(XcEwcN:) d(fiilspea=gtracnh_t_rtawbl_e.bc,l oclk_iineo=5:1 12 b)i Uonmsa spupibnmigtt edg
rcawnct :rfaestf_ (f1)l fuors dhom_aariean:i n(
2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f44c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(wXc:EdN)i (sfpilaetc=h_grwr_anbtlo_ctakbl_e.ico:,  l1in ebi=os5 s1u2)bm iUntmatppeidn
gc wcg:rafnta rseft (_f1l) ufosr hd_aomraeain: (i2)n 
with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e7e800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(XcEN:)di sp(afitlche_r=gwr_balonctk__iot: a1 bblei.co,s  sulbmiitnteed=51
2c)wc :fUanmsaptpi_nflgus hgr_aarneat:i nr
ef (1) for domain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e7fc00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(wcX:ENd)is p(aftilce=hg_rrwan_t_btablleo.cc,k l_inieo:=5 121)  Unbmioapsp siubnmigtt egrda
nct wrecf :(1f) afsort _fdluomsah_iarnea :(2i) nw
ith handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e80400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(c:XdEisNpa)t (cfh_irwl_bel=ocgk_rioa: n1 tbi_ost saubbmilttee.cd, 
lciwcn:feas=t51_2fl) uUshn_amreaapp:iinng g
rant ref (1) for domain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:8
(XEN) (file=grant_table.c, line=401) Mapping grant ref (1) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e80400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e80400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e81400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e81400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e81400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e81400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e82400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e82400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(XcE:dNis)p (afitlce=hgr_arwn_btl_toackb_iloe.:c,  1 lbiions es=5u12b)mi Utntmaeppding
c gwrc:afanstt_ flrusehf _(1a)re a:fino
r domain (2) with handle (7)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (2) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:4
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e82400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e82400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e83400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e83400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(XwcE:Ndi)sp a(ftilceh_=rwg_brloackn_ito:_ 1t abblei.osc s,ub miltinteed=5
c12w) cUn:mafpaspt_ifngl gursha_nat rreae:ifn (7
) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:5
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e83800 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e83800 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e84800 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e84800 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e84800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(XEcN:)di s(pfailtceh=g_rarnwt__tabblolcke_i.o:c , 1li nbieos= s5u12b) mUnimttaedppi
cwncg :gfarsantt _frlefu (s4)h f_ora dromeaa:iin n(2)
 with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (3) for domain (2) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:7
(XEN) (file=grant_table.c, line=401) Mapping grant ref (3) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e84400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e85400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e85400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e85400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e85400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e86400 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e86400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(wXEcN:d)i (sfiplatec=ghr_raw_nbt_ltaoblcek_.ioc: ,1  biloinse s=ub5m12i) tUntmeda
cpwcp:infg agrsat_nfltu rsefh (_3ar)ea :foir ndoma
in (2) with handle (5)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (0)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e87c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(wXc:EdNis)p (aftcihle_=grrw_ablnot_ctk_abileo.c:, 1 l ibinose s=5u1bm2)i ttUnemda
pcwpcin:gfa gsrt_aflntu shr_aerefa: (i0n)
 for domain (2) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e89400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(Xc:EdN)i sp(afitlec=ghr_rawnt_b_ltaoblcek_.ic,o l:in e1 =b51i2)o s Usunbmamppiittneg dg
cwrcan:t fraefst _f(lu0s) hfo_r adreomaa:iinn (2
) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e8a400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(XwEc:Nd) i(spfaticleh=_grranwt__tblaoblcke_i.oc,: l in1e b=io5s 1s2)ub mUnimatptepdin
cgwc :grfanat srt_eff lu(sh0_) afreoar :doimna
in (2) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:2
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f36000 populated 8 sects
cwc:dispatch_rw_block_io: buf:37f35000 populated 8 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(XcE:dNi) s(pafticleh=_rgwra_ntb_lotacbk_lieo:. 1c b,i loinse s=u51b2)m itUtnmeapdp
incgwc :grfanat sretf _(fl0)u shfo_rar ead:ominain 
cw(c2): wditihsp athcanhdl_e r(3w)_
b(lXEoN)c k_ciow:icn :ns_e_ggntsta:b2_
unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XENc) w(fci:flae=sgrta_fnlutsh__taraeab:olute.c
, line=401) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f34c00 populated 8 sects
cwc:dispatch_rw_block_io: buf:37e8dc00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
c(XwENc) :(difspiatlce=hg_rarntw__btlaobckl_ieo.c: ,1  blioisne s=u51b2mi)tt edUnm
cwac:pfpiangs t_gflruansth_ arreae:ifn (4)
 for domain (2) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (5) for domain (2) with handle (3)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:5
(XEN) (file=grant_table.c, line=401) Mapping grant ref (5) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (4) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f33000 populated 8 sects
cwc:dispatch_rw_block_io: buf:37f32000 populated 8 sects
cwc:dispatch_rw_block_io: buf:37f31000 populated 8 sects
cwc:dispatch_rw_block_io: buf:37f30000 populated 8 sects
cwc:dispatch_rw_block_io: buf:37f2f000 populated 6 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(cX:ENd) i(spfaitclh_er=gwra_nbltoc_kta_blie.oc,: l in1e= 51b2)i osU snumabppmiitntg egrdant
c rwec:f f(as5t_)f flousrh_ adormaeina (:2in) w
icthwc :hadnisdpaltceh (_3r)w
(_XEbNlo)ck _ico:winc n:se_g_gsn:1tta
b_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (4) for domain (2) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (2) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XENc) w(c:ffaistl_felu=sgrhan_tar_etaa:boulte
.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e8fc00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
(cXEwNc:)d (isfpilae=tgrcanht__tarblwe._cbl,oc k_liino:e= 51 1bi2os) s ubUmintmatppeindg g
crwanct:f raestf_ (f7lu)sh f_oarrea :doimani
n (2) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e90400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(Xc:EdN)i sp(atfcilhe_r=w_gbralnoctk__itaobl:e 1. bci, ols isunbmei=5t1te2d) Un
mcwac:pfapisngt g_rafnlut srh_eaf r(7ea): fionr
 domain (2) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e91800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cw(c:XdENi)sp at(cfihle_=rwg_brlanot_ctabk_lie.oc: ,1  bliineo=s 5s12u) bUminttmeapdpin
g cgrwca:ntf raestf _(fl7us)h f_ora reda:oimanin
 cw(c:2di)s wpiatcth_hr hwan_dlbelo c(1k)_
(XiENo):i n cnswec:g__sgn:tt2a
b_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(cXwENc) :(ffiaslt_ef=glraunts_thab_lea.cre,a :olutine
=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e92c00 populated 2 sects
cwc:dispatch_rw_block_io: buf:37e92c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
(XcENw)c: di(sfiplea=tcgh_rranwt_b_lotcabkl_ieo.c: ,1 l ibinoe=s51 s2ub)mi tUntmaeppd
ingc wcg:fraanst tr_felufs (h6)_ arfeao:rin 
dcomwaicn :(di2sp)at cwiht_rhw_ blhoancdk_lie o(1:i)n
 (nXEsN)e cgwcs::1_
_gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(cXwcE:fNas)t_ f(fluisleh_=argear:anot_utta
ble.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e93c00 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
(XcENw) c:d(fiilsepa=tcghra_ntr_w_tblaocbkle_.ci,o:  li1ne =bi5os1 s2u) bUmintmatppeidn
cgwc: fagstr_falntus h_rareef a(7:)in 
for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:1
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37e95400 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
cwc:dispatch_rw_block_io:in nsegs:4
(XEN) (file=grant_table.c, line=401) Mapping grant ref (7) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (0) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (6) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
(XEN) (file=grant_table.c, line=401) Mapping grant ref (2) for domain (2) with flags (2)
(XEN) cwc:__gnttab_activate_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: post spin_lock
(XEN) cwc:__gnttab_activate_grant_ref: spin_unlock
(XEN) cwc:__gnttab_activate_grant_ref: out
cwc:dispatch_rw_block_io:post map
cwc:dispatch_rw_block_io:pre populate segs
cwc:dispatch_rw_block_io: buf:37f2e800 populated 8 sects
cwc:dispatch_rw_block_io: buf:37f2d800 populated 8 sects
cwc:dispatch_rw_block_io: buf:cac800 populated 8 sects
cwc:dispatch_rw_block_io: buf:37e96800 populated 2 sects
cwc:dispatch_rw_block_io: post bio_add_page
cwc:dispatch_rw_block_io: 1 bios submitted
cwc:fast_flush_area:in
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (7) for domain (2) with handle (2)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (0) for domain (2) with handle (1)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (6) for domain (2) with handle (4)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
(XEN) (file=grant_table.c, line=512) Unmapping grant ref (2) for domain (2) with handle (6)
(XEN) cwc:__gnttab_unmap_grant_ref: pre spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: post spin_lock
(XEN) cwc:__gnttab_unmap_grant_ref: pre pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: post pagetable delete
(XEN) cwc:__gnttab_unmap_grant_ref: out spin_unlock
cwc:fast_flush_area:out
device vif2.0 left promiscuous mode
xen-br0: port 2(vif2.0) entering disabled state
xen-br0: port 2(vif2.0) entering disabled state

[-- Attachment #8: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

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

* Re: Unstableness in grant table block drivers
  2005-04-18 20:51     ` Ryan Harper
@ 2005-04-20 18:52       ` Christopher Clark
  2005-04-20 19:37         ` Ryan Harper
  2005-05-12  1:50         ` Xiaofeng Ling
  0 siblings, 2 replies; 42+ messages in thread
From: Christopher Clark @ 2005-04-20 18:52 UTC (permalink / raw)
  To: Ryan Harper; +Cc: xen-devel

Ryan

Many thanks for taking the traces. I've located a bug in the block
backend that may or may not be the required fix -- it's a move of a
single line, see the patch below.

c.

Signed-off-by: Christopher Clark

diff -Nru a/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c
b/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c
--- a/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c 2005-04-20
11:31:20 -07:00
+++ b/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c 2005-04-20
11:31:20 -07:00
@@ -516,11 +516,11 @@

     for ( i = 0; i < nseg; i++ )
     {
+        fas         = req->frame_and_sects[i];
 #ifdef CONFIG_XEN_BLKDEV_GRANT
         seg[i].buf  = (aop[i].u.map_grant_ref.dev_bus_addr << PAGE_SHIFT) |
                       (blkif_first_sect(fas) << 9);
 #else
-        fas          = req->frame_and_sects[i];
         seg[i].buf  = (fas & PAGE_MASK) | (blkif_first_sect(fas) << 9);
         seg[i].nsec = blkif_last_sect(fas) - blkif_first_sect(fas) + 1;
         if ( seg[i].nsec <= 0 )



On 4/18/05, Ryan Harper <ryanh@us.ibm.com> wrote:
> * Christopher Clark <christopher.w.clark@gmail.com> [2005-04-18 11:39]:
> > Ryan and Anthony: I've attached a patch that I'd like you to apply to
> > your unstable tree -- it just printk's almost everything so I can get
> > an idea of the code path you're running.
> > Alternatively, the three .c files modified by the patch are also
> > attached - they're taken from 2005-04-14 unstable and you should be
> > able to just replace the files in your tree.
> >
> > After changing your tree and rebuilding, please send the console logs
> > from boot onwards for xen/dom0 and domU, in a uniprocessor
> > configuration, both with and without using grant tables for block
> > transport.
> 
> I've applied the patch and I have a bunch of logs.
> 
> 1) domU boot output when dom0up boots domUup
> 2) domU boot output when dom0up boots domUsmp
> 3) xen console output for 1) and 2)
> 4) domU boot output when dom0smp boots domUup
> 5) domU boot output when dom0smp boots domUsmp
> 6) xen console output for 4) and 5)
> 
> In the above cases, dom0up was simulated with maxcpu=1, as I still don't
> have that UP box setup.  If you can't find anything in these logs then
> I'll go get a real UP box and repeat the dumps.
> 
> --
> Ryan Harper
> Software Engineer; Linux Technology Center
> IBM Corp., Austin, Tx
> (512) 838-9253   T/L: 678-9253
> ryanh@us.ibm.com
> 
> 
>

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

* Re: Unstableness in grant table block drivers
  2005-04-20 18:52       ` Christopher Clark
@ 2005-04-20 19:37         ` Ryan Harper
  2005-04-20 20:04           ` Building unstable on a Debian Opteron box Ray Lanza
  2005-04-22 18:57           ` Unstableness in grant table block drivers Ryan Harper
  2005-05-12  1:50         ` Xiaofeng Ling
  1 sibling, 2 replies; 42+ messages in thread
From: Ryan Harper @ 2005-04-20 19:37 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

* Christopher Clark <christopher.w.clark@gmail.com> [2005-04-20 13:53]:
> Ryan
> 
> Many thanks for taking the traces. I've located a bug in the block
> backend that may or may not be the required fix -- it's a move of a
> single line, see the patch below.

Sure.  I'll give this patch a try and let you know.

--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* Building unstable on a Debian Opteron box.
  2005-04-20 19:37         ` Ryan Harper
@ 2005-04-20 20:04           ` Ray Lanza
  2005-04-20 20:29             ` Chris Wright
  2005-04-22 18:57           ` Unstableness in grant table block drivers Ryan Harper
  1 sibling, 1 reply; 42+ messages in thread
From: Ray Lanza @ 2005-04-20 20:04 UTC (permalink / raw)
  To: xen-devel

I'm trying to build xen on a dual Opteron running Debian (sid) and am
encountering include file conflicts.  Has anybody successfully built and run
on a configuration like this or am I into new territory?

	thanks,
		ray

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

* Re: Building unstable on a Debian Opteron box.
  2005-04-20 20:04           ` Building unstable on a Debian Opteron box Ray Lanza
@ 2005-04-20 20:29             ` Chris Wright
  0 siblings, 0 replies; 42+ messages in thread
From: Chris Wright @ 2005-04-20 20:29 UTC (permalink / raw)
  To: Ray Lanza; +Cc: xen-devel

* Ray Lanza (ray.lanza@hp.com) wrote:
> I'm trying to build xen on a dual Opteron running Debian (sid) and am
> encountering include file conflicts.  Has anybody successfully built and run
> on a configuration like this or am I into new territory?

I heard this once before.  It looked to me like a Debian header issue.
Do you have specifics?  (BTW, xen on dual opteron builds fine here).

thanks,
-chris

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

* Re: Unstableness in grant table block drivers
  2005-04-20 19:37         ` Ryan Harper
  2005-04-20 20:04           ` Building unstable on a Debian Opteron box Ray Lanza
@ 2005-04-22 18:57           ` Ryan Harper
  2005-04-22 19:06             ` Anthony Liguori
  1 sibling, 1 reply; 42+ messages in thread
From: Ryan Harper @ 2005-04-22 18:57 UTC (permalink / raw)
  To: cwc22; +Cc: xen-devel

* Ryan Harper <ryanh@us.ibm.com> [2005-04-20 14:38]:
> * Christopher Clark <christopher.w.clark@gmail.com> [2005-04-20 13:53]:
> > Ryan
> > 
> > Many thanks for taking the traces. I've located a bug in the block
> > backend that may or may not be the required fix -- it's a move of a
> > single line, see the patch below.
> 
> Sure.  I'll give this patch a try and let you know.

Sorry to be late on this.  Moving that patch does it!  Thanks.

-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

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

* Re: Unstableness in grant table block drivers
  2005-04-22 18:57           ` Unstableness in grant table block drivers Ryan Harper
@ 2005-04-22 19:06             ` Anthony Liguori
  0 siblings, 0 replies; 42+ messages in thread
From: Anthony Liguori @ 2005-04-22 19:06 UTC (permalink / raw)
  To: Ryan Harper; +Cc: cwc22, xen-devel

Ryan Harper wrote:

>* Ryan Harper <ryanh@us.ibm.com> [2005-04-20 14:38]:
>  
>
>>* Christopher Clark <christopher.w.clark@gmail.com> [2005-04-20 13:53]:
>>    
>>
>>>Ryan
>>>
>>>Many thanks for taking the traces. I've located a bug in the block
>>>backend that may or may not be the required fix -- it's a move of a
>>>single line, see the patch below.
>>>      
>>>
>>Sure.  I'll give this patch a try and let you know.
>>    
>>
>
>Sorry to be late on this.  Moving that patch does it!  Thanks.
>  
>
I've had the patch applied and the grant table code enabled for about a 
day and have not experienced any troubles.  Previously, I was 
experiencing a crash every couple hours.

I'll let you know if anything changes.

Thanks Chris!

Regards,
Anthony Liguori

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

* Re: Unstableness in grant table block drivers
  2005-04-20 18:52       ` Christopher Clark
  2005-04-20 19:37         ` Ryan Harper
@ 2005-05-12  1:50         ` Xiaofeng Ling
  1 sibling, 0 replies; 42+ messages in thread
From: Xiaofeng Ling @ 2005-05-12  1:50 UTC (permalink / raw)
  To: cwc22; +Cc: Ryan Harper, xen-devel

I found there is bug in the 2.4 vbd grant table code

===== xen-bk/linux-2.6.11-xen-sparse/drivers/xen/blkfront/blkfront.c 
1.53 vs edited =====
--- 1.53/linux-2.6.11-xen-sparse/drivers/xen/blkfront/blkfront.c 
2005-04-21 17:14:12 +08:00
+++ 
edited/xen-bk/linux-2.6.11-xen-sparse/drivers/xen/blkfront/blkfront.c 
     2005-05-12 09:15:38 +08:00
@@ -824,7 +824,7 @@
                          buffer_ma >> PAGE_SHIFT,
                          ( operation == BLKIF_OP_WRITE ? 1 : 0 ) );

-            blk_shadow[id].frame[req->nr_segments] =
+            blk_shadow[req->id].frame[req->nr_segments] =
                  buffer_ma >> PAGE_SHIFT;

              req->frame_and_sects[req->nr_segments] =


Christopher Clark wrote:
> Ryan
> 
> Many thanks for taking the traces. I've located a bug in the block
> backend that may or may not be the required fix -- it's a move of a
> single line, see the patch below.
> 
> c.
> 
> Signed-off-by: Christopher Clark
> 
> diff -Nru a/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c
> b/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c
> --- a/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c 2005-04-20
> 11:31:20 -07:00
> +++ b/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c 2005-04-20
> 11:31:20 -07:00
> @@ -516,11 +516,11 @@

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

end of thread, other threads:[~2005-05-12  1:50 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-16  1:32 Unstableness in grant table block drivers Ian Pratt
2005-04-16 15:39 ` Ryan Harper
2005-04-18 16:38   ` Christopher Clark
2005-04-18 16:45     ` Ryan Harper
2005-04-18 20:51     ` Ryan Harper
2005-04-20 18:52       ` Christopher Clark
2005-04-20 19:37         ` Ryan Harper
2005-04-20 20:04           ` Building unstable on a Debian Opteron box Ray Lanza
2005-04-20 20:29             ` Chris Wright
2005-04-22 18:57           ` Unstableness in grant table block drivers Ryan Harper
2005-04-22 19:06             ` Anthony Liguori
2005-05-12  1:50         ` Xiaofeng Ling
  -- strict thread matches above, loose matches on Subject: below --
2005-04-15 22:30 Ian Pratt
2005-04-16  1:18 ` Christopher Clark
2005-04-16  1:32   ` Christopher Clark
2005-04-16  3:03     ` David Hopwood
2005-04-14 10:24 Ian Pratt
2005-04-14 10:34 ` Ge van Geldorp
     [not found] <E1DLu58-0005lx-KR@host-192-168-0-1-bcn-london>
2005-04-14 10:17 ` Ge van Geldorp
     [not found] <aliguori@us.ibm.com>
2005-04-14  1:18 ` Anthony Liguori
2005-04-14  1:20   ` Steven Hand
2005-04-14  1:46     ` Anthony Liguori
2005-04-14  1:53     ` Kip Macy
2005-04-14  2:27       ` Anthony Liguori
2005-04-14  2:55         ` Kip Macy
2005-04-14  1:16 Ian Pratt
2005-04-14  1:43 ` Anthony Liguori
2005-04-14  2:04   ` Christopher Clark
2005-04-14  2:17     ` Kip Macy
2005-04-14  2:25     ` Anthony Liguori
2005-04-14 15:00     ` Ryan Harper
2005-04-14 16:34       ` Christopher Clark
2005-04-14 17:28         ` Ryan Harper
2005-04-15 18:45           ` Christopher Clark
2005-04-15 21:14             ` Ryan Harper
2005-04-15 21:32               ` Kip Macy
2005-04-15 21:41                 ` Ryan Harper
2005-04-15 21:46                   ` Kip Macy
2005-04-15 21:50                     ` Ryan Harper
2005-04-15 21:52                 ` Ryan Harper
2005-04-15 22:07                   ` Christopher Clark
2005-04-15 22:08                     ` Ryan Harper

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.