From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Boris Derzhavets <bderzhavets@yahoo.com>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
Michael Ralston <michael@ralston.id.au>,
"xen-users@lists.xensource.com" <xen-users@lists.xensource.com>
Subject: Re: Re: [Xen-users] pv_ops kernel and nvidia binary driver
Date: Wed, 15 Jul 2009 09:57:35 -0700 [thread overview]
Message-ID: <4A5E0A7F.3070400@goop.org> (raw)
In-Reply-To: <1247645673.13493.65.camel@zakaz.uk.xensource.com>
On 07/15/09 01:14, Ian Campbell wrote:
> On Tue, 2009-07-14 at 20:52 +0100, Jeremy Fitzhardinge wrote:
>
>> The problem comes down to whether the nvidia driver assumes the kernel's
>> (pseudo-)physical addresses are really machine physical or not. If it
>> doesn't do the appropriate conversions between physical and machine
>> addresses using the standard Linux DMA API (or similar), then it will
>> end up misprogramming the hardware and reading/writing random memory.
>> There's not a lot we can do about that if that happens within the binary
>> part of the nvidia driver. If the binary code calls out to the
>> source-available parts of the driver to do those conversions, then it
>> would be possible to fix there.
>>
>
> I've been running the Nvidia driver on an old style Xen kernel for quite
> a while now so I guess it will be possible to make it work for pvops
> too. The glue layer contains:
> /*
> * Traditionally, CONFIG_XEN indicated that the target kernel was
> * built exclusively for use under a Xen hypervisor, requiring
> * modifications to or disabling of a variety of NVIDIA graphics
> * driver code paths. As of the introduction of CONFIG_PARAVIRT
> * and support for Xen hypervisors within the CONFIG_PARAVIRT_GUEST
> * architecture, CONFIG_XEN merely indicates that the target
> * kernel can run under a Xen hypervisor, but not that it will.
> *
> * If CONFIG_XEN and CONFIG_PARAVIRT are defined, the old Xen
> * specific code paths are disabled. If the target kernel executes
> * stand-alone, the NVIDIA graphics driver will work fine. If the
> * kernels executes under a Xen (or other) hypervisor, however, the
> * NVIDIA graphics driver has no way of knowing and is unlikely
> * to work correctly.
>
The whole point of pvops and the other changes is that they don't need
to care whether its running under Xen. They must be going around the
standard APIs, and doing something special for the Xen case. Of
course, they can always use the xen_domain() predicates to make that
code runtime conditional if they want to do it that way...
J
next prev parent reply other threads:[~2009-07-15 16:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-12 6:03 pv_ops kernel and nvidia binary driver Boris Derzhavets
2009-07-14 19:52 ` Re: [Xen-users] " Jeremy Fitzhardinge
2009-07-15 8:14 ` Ian Campbell
2009-07-15 16:57 ` Jeremy Fitzhardinge [this message]
-- strict thread matches above, loose matches on Subject: below --
2009-07-14 21:43 Boris Derzhavets
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A5E0A7F.3070400@goop.org \
--to=jeremy@goop.org \
--cc=Ian.Campbell@citrix.com \
--cc=bderzhavets@yahoo.com \
--cc=michael@ralston.id.au \
--cc=xen-devel@lists.xensource.com \
--cc=xen-users@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.