From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: Device Reset on Nvidia GPUs Date: Fri, 15 Nov 2013 09:40:04 -0500 Message-ID: <20131115144004.GA28448@phenom.dumpdata.com> References: <87b7d4387d7ab0bbb220efa864170381@mail.shatteredsilicon.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Gordan Bobic Cc: xen-devel@lists.xen.org, Stefano Stabellini List-Id: xen-devel@lists.xenproject.org On Fri, Nov 15, 2013 at 02:29:39PM +0000, Gordan Bobic wrote: > On Fri, 15 Nov 2013 14:27:21 +0000, Stefano Stabellini > wrote: > >On Fri, 15 Nov 2013, Gordan Bobic wrote: > >>I've noticed that nouveau driver has a sysfs reset implemented > >>(although I'm not sure whether it is just a stub or whether it > >>does anything). > >> > >>Now, I fully understand that this is not actually necessary, > >>based purely on empirical evidence: > >> > >>My ATI cards reliably crash the host when the domU the are passed > >>to is rebooted, and the xen-pciback driver does have the sysfs > >>reset implemented for ATI cards. > >> > >>OTOH, my (modified) Nvidia cards handle domU reboots perfectly > >>and the xen-pciback driver has no sysfs reset implementation > >>for those. > >> > >>So I'm kind of torn between: > >>1) It's not broken so don't even think about trying to fix it. > >>2) Since FOSS reset implementation seems to exist, it might be > >>handy to port it into the xen-pciback feature list (caveat: > >>this may impact 1), which would be embarrasing). > >> > >>Thoughts? > > > >libxl is capable of using the sysfs reset node, so there shouldn't be > >any needed for porting the reset code to pciback > > Not quite - when the device is owned by xen-pciback, there is > no reset node. When it is owned by nouveau, the reset node in > sysfs is there. Sure, but pciback does the reset: /* We need the device active to save the state. */ dev_dbg(&dev->dev, "save state of device\n"); pci_save_state(dev); dev_data->pci_saved_state = pci_store_saved_state(dev); if (!dev_data->pci_saved_state) dev_err(&dev->dev, "Could not store PCI conf saved state!\n"); else { dev_dbg(&dev->dev, "resetting (FLR, D3, etc) the device\n"); __pci_reset_function_locked(dev); pci_restore_state(dev); } The pci_reset_function(..) - the non-locked variant) is called when you do 'reset' to the SysFS. Unless the nouveau driver does some extra 'reset'? > > Gordan > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel