From: Thomas Hellstrom <thellstrom@vmware.com>
To: j.glisse@gmail.com
Cc: Jerome Glisse <jglisse@redhat.com>, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 02/12] drm/ttm: remove split btw highmen and lowmem page
Date: Tue, 08 Nov 2011 08:56:17 +0100 [thread overview]
Message-ID: <4EB8E0A1.1050306@vmware.com> (raw)
In-Reply-To: <1320709232-29477-3-git-send-email-j.glisse@gmail.com>
On 11/08/2011 12:40 AM, j.glisse@gmail.com wrote:
> From: Jerome Glisse<jglisse@redhat.com>
>
> Split btw highmem and lowmem page was rendered useless by the
> pool code. Remove it.
Actually it was introduced so that we could call set_pages_array_xx
when changing caching attributes of an existing TTM, since the
set_pages_array_xx functions complained about highmem pages.
That should've been fixed now in the pageattr code, though.
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
> Note further cleanup would change the
> ttm page allocation helper to actualy take an array instead
> of relying on list this could drasticly reduce the number of
> function call in the common case of allocation whole buffer.
>
> Signed-off-by: Jerome Glisse<jglisse@redhat.com>
> Reviewed-by: Konrad Rzeszutek Wilk<konrad.wilk@oracle.com>
> ---
> drivers/gpu/drm/ttm/ttm_tt.c | 11 ++---------
> include/drm/ttm/ttm_bo_driver.h | 7 -------
> 2 files changed, 2 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
> index 82a1161..8b7a6d0 100644
> --- a/drivers/gpu/drm/ttm/ttm_tt.c
> +++ b/drivers/gpu/drm/ttm/ttm_tt.c
> @@ -69,7 +69,7 @@ static struct page *__ttm_tt_get_page(struct ttm_tt *ttm, int index)
> struct ttm_mem_global *mem_glob = ttm->glob->mem_glob;
> int ret;
>
> - while (NULL == (p = ttm->pages[index])) {
> + if (NULL == (p = ttm->pages[index])) {
>
> INIT_LIST_HEAD(&h);
>
> @@ -85,10 +85,7 @@ static struct page *__ttm_tt_get_page(struct ttm_tt *ttm, int index)
> if (unlikely(ret != 0))
> goto out_err;
>
> - if (PageHighMem(p))
> - ttm->pages[--ttm->first_himem_page] = p;
> - else
> - ttm->pages[++ttm->last_lomem_page] = p;
> + ttm->pages[index] = p;
> }
> return p;
> out_err:
> @@ -270,8 +267,6 @@ static void ttm_tt_free_alloced_pages(struct ttm_tt *ttm)
> ttm_put_pages(&h, count, ttm->page_flags, ttm->caching_state,
> ttm->dma_address);
> ttm->state = tt_unpopulated;
> - ttm->first_himem_page = ttm->num_pages;
> - ttm->last_lomem_page = -1;
> }
>
> void ttm_tt_destroy(struct ttm_tt *ttm)
> @@ -315,8 +310,6 @@ struct ttm_tt *ttm_tt_create(struct ttm_bo_device *bdev, unsigned long size,
>
> ttm->glob = bdev->glob;
> ttm->num_pages = (size + PAGE_SIZE - 1)>> PAGE_SHIFT;
> - ttm->first_himem_page = ttm->num_pages;
> - ttm->last_lomem_page = -1;
> ttm->caching_state = tt_cached;
> ttm->page_flags = page_flags;
>
> diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
> index 37527d6..9da182b 100644
> --- a/include/drm/ttm/ttm_bo_driver.h
> +++ b/include/drm/ttm/ttm_bo_driver.h
> @@ -136,11 +136,6 @@ enum ttm_caching_state {
> * @dummy_read_page: Page to map where the ttm_tt page array contains a NULL
> * pointer.
> * @pages: Array of pages backing the data.
> - * @first_himem_page: Himem pages are put last in the page array, which
> - * enables us to run caching attribute changes on only the first part
> - * of the page array containing lomem pages. This is the index of the
> - * first himem page.
> - * @last_lomem_page: Index of the last lomem page in the page array.
> * @num_pages: Number of pages in the page array.
> * @bdev: Pointer to the current struct ttm_bo_device.
> * @be: Pointer to the ttm backend.
> @@ -157,8 +152,6 @@ enum ttm_caching_state {
> struct ttm_tt {
> struct page *dummy_read_page;
> struct page **pages;
> - long first_himem_page;
> - long last_lomem_page;
> uint32_t page_flags;
> unsigned long num_pages;
> struct ttm_bo_global *glob;
>
next prev parent reply other threads:[~2011-11-08 7:58 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-07 23:40 ttm: merge ttm_backend & ttm_tt, introduce ttm dma allocator [FULL] j.glisse
2011-11-07 23:40 ` [PATCH 01/12] drm/ttm: remove userspace backed ttm object support j.glisse
2011-11-08 7:22 ` Thomas Hellstrom
2011-11-09 20:34 ` Jerome Glisse
2011-11-08 7:44 ` Thomas Hellstrom
2011-11-07 23:40 ` [PATCH 02/12] drm/ttm: remove split btw highmen and lowmem page j.glisse
2011-11-08 7:56 ` Thomas Hellstrom [this message]
2011-11-08 15:13 ` Konrad Rzeszutek Wilk
2011-11-07 23:40 ` [PATCH 03/12] drm/ttm: remove unused backend flags field j.glisse
2011-11-08 7:56 ` Thomas Hellstrom
2011-11-07 23:40 ` [PATCH 04/12] drm/ttm: use ttm put pages function to properly restore cache attribute j.glisse
2011-11-08 7:57 ` Thomas Hellstrom
2011-11-07 23:40 ` [PATCH 05/12] drm/ttm: convert page allocation to use page ptr array instead of list V3 j.glisse
2011-11-08 8:11 ` Thomas Hellstrom
2011-11-08 16:19 ` Jerome Glisse
2011-11-07 23:40 ` [PATCH 06/12] drm/ttm: test for dma_address array allocation failure j.glisse
2011-11-08 8:12 ` Thomas Hellstrom
2011-11-07 23:40 ` [PATCH 07/12] drm/ttm: merge ttm_backend and ttm_tt j.glisse
2011-11-08 8:48 ` Thomas Hellstrom
2011-11-07 23:40 ` [PATCH 08/12] drm/ttm: introduce callback for ttm_tt populate & unpopulate j.glisse
2011-11-08 8:29 ` Thomas Hellstrom
2011-11-07 23:40 ` [PATCH 09/12] ttm: Provide DMA aware TTM page pool code j.glisse
2011-11-08 8:51 ` Thomas Hellstrom
2011-11-07 23:40 ` [PATCH 10/12] swiotlb: Expose swiotlb_nr_tlb function to modules j.glisse
2011-11-07 23:40 ` [PATCH 11/12] drm/radeon/kms: Enable the TTM DMA pool if swiotlb is on j.glisse
2011-11-07 23:40 ` [PATCH 12/12] nouveau/ttm/dma: Enable the TTM DMA pool if device can only do 32-bit DMA j.glisse
2011-11-08 15:15 ` ttm: merge ttm_backend & ttm_tt, introduce ttm dma allocator [FULL] Konrad Rzeszutek Wilk
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=4EB8E0A1.1050306@vmware.com \
--to=thellstrom@vmware.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=j.glisse@gmail.com \
--cc=jglisse@redhat.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.