All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Hellstrom <thellstrom@vmware.com>
To: Jerome Glisse <jglisse@redhat.com>
Cc: "skeggsb@gmail.com" <skeggsb@gmail.com>,
	"dri-devel@lists.sf.net" <dri-devel@lists.sf.net>
Subject: Re: Unmappable VRAM patchset V3
Date: Wed, 24 Feb 2010 13:37:42 +0100	[thread overview]
Message-ID: <4B851D96.1020706@vmware.com> (raw)
In-Reply-To: <20100224095749.GI11509@localhost.localdomain>

Jerome Glisse wrote:
> On Tue, Feb 23, 2010 at 02:05:50PM +0100, Thomas Hellstrom wrote:
>   
>> Jerome Glisse wrote:
>>     
>>> On Mon, Feb 22, 2010 at 08:58:28PM +0100, Thomas Hellstrom wrote:
>>>       
>>>> Jerome Glisse wrote:
>>>>         
>>>>> On Mon, Feb 22, 2010 at 06:30:24PM +0100, Thomas Hellstrom wrote:
>>>>>           
>>>>>> Jerome Glisse wrote:
>>>>>>             
>>>>>>> Thomas i think i addressed your concern here, the ttm_bo_validate
>>>>>>> didn't needed a new argument or i did not understand what was
>>>>>>> necessary beside no_wait. In this patchset we check the value
>>>>>>> of callback in case of EBUSY (call set_need_resched) or ERESTARTSYS
>>>>>>> we return VM_FAULT_NOPAGE.
>>>>>>>               
>>>>>> Well, if we from the fault callback call any function that might
>>>>>> call ttm_bo_reserve or ttm_bo_reserve_locked, we must make sure
>>>>>> that we never wait, but return -EBUSY all the way back to the
>>>>>> fault function. Such a case may be ttm_bo_validate that calls
>>>>>> ttm_bo_evict_first, or something causing a swapout...
>>>>>> ttm_bo_validate currently doesn't have that functionality,
>>>>>> because @no_wait just means don't wait for GPU.
>>>>>>             
>>>>> What do you mean by never wait ? Is this GPU wait ? or CPU wait ie don't
>>>>> use mutex or kernel code path that might sleep ?
>>>>>           
>>>> I mean waiting while reserving a bo. (If another thread has the bo
>>>> reserved).
>>>>
>>>>         
>>>>> After a new review i don't think we ever wait for the GPU with the current
>>>>> patch and as far as i can tell we will return EBUSY or ERESTART all the
>>>>> way up.
>>>>>
>>>>> Cheers,
>>>>> Jerome
>>>>>           
>>>> If there is *no* code path trying to reserve a bo or create a
>>>> user-space visible object from within the fault handler, it should
>>>> be ok.
>>>>
>>>> /Thomas
>>>>
>>>>
>>>>         
>>> Did a new review again here is the call chain :
>>> ttm_bo_move_buffer
>>>  ttm_bo_mem_space
>>>    ttm_bo_mem_force_space
>>>      ttm_mem_evict_first
>>>        ttm_bo_reserve_locked (no_wait = true)
>>>       
>> Here ttm_mem_evict_fist may wait for unreserve IIRC (the -EBUSY
>> return from ttm_bo_reserve_locked) is not propagated back.
>>     
>
> The code is not straightforward but if no_wait is true the
> -EBUSY of ttm_bo_reserve_locked will be propagated back.
>   

The point is that we don't want to set no_wait to true, because it's OK 
to wait for GPU. We want to add an extra argument no_wait_reserve.

/Thomas


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--

  reply	other threads:[~2010-02-24 12:37 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-22 17:11 Unmappable VRAM patchset V3 Jerome Glisse
2010-02-22 17:11 ` [PATCH 1/9] drm/ttm: add ttm_fault callback to allow driver to handle bo placement Jerome Glisse
2010-02-22 17:11   ` [PATCH 1/9] drm/ttm: ttm_fault callback to allow driver to handle bo placement V2 Jerome Glisse
2010-02-22 17:11     ` [PATCH 2/9] drm/radeon/kms: add support for new fault callback Jerome Glisse
2010-02-22 17:11       ` [PATCH 2/9] drm/radeon/kms: add support for new fault callback V2 Jerome Glisse
2010-02-22 17:11         ` [PATCH 3/9] drm/nouveau/kms: add support for new TTM fault callback Jerome Glisse
2010-02-22 17:11           ` [PATCH 4/9] drm/vmwgfx: " Jerome Glisse
2010-02-22 17:11             ` [PATCH 5/9] drm/radeon/kms: don't initialize TTM io memory manager field Jerome Glisse
2010-02-22 17:11               ` [PATCH 6/9] drm/nouveau/kms: " Jerome Glisse
2010-02-22 17:11                 ` [PATCH 7/9] drm/vmwgfx: " Jerome Glisse
2010-02-22 17:11                   ` [PATCH 8/9] drm/ttm: remove io_ field from TTM Jerome Glisse
2010-02-22 17:11                     ` [PATCH 8/9] drm/ttm: remove io_ field from TTM V2 Jerome Glisse
2010-02-22 17:11                       ` [PATCH 9/9] drm/radeon/kms: enable use of unmappable VRAM Jerome Glisse
2010-03-17 12:57     ` [PATCH 1/9] drm/ttm: ttm_fault callback to allow driver to handle bo placement V2 Thomas Hellstrom
2010-02-22 17:30 ` Unmappable VRAM patchset V3 Thomas Hellstrom
2010-02-22 19:09   ` Jerome Glisse
     [not found]     ` <4B82E1E4.40909@vmware.com>
2010-02-23  9:59       ` Jerome Glisse
2010-02-23 13:05         ` Thomas Hellstrom
2010-02-24  9:57           ` Jerome Glisse
2010-02-24 12:37             ` Thomas Hellstrom [this message]
2010-02-24 15:58               ` Jerome Glisse
2010-02-24 17:04                 ` Thomas Hellstrom
2010-02-25  9:39                   ` Jerome Glisse

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=4B851D96.1020706@vmware.com \
    --to=thellstrom@vmware.com \
    --cc=dri-devel@lists.sf.net \
    --cc=jglisse@redhat.com \
    --cc=skeggsb@gmail.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.