xf86-video-intel: 2 commits - src/sna/kgem.c src/sna/kgem.h src/sna/sna_accel.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Dec 9 16:00:10 PST 2011


 src/sna/kgem.c      |    2 +-
 src/sna/kgem.h      |    1 +
 src/sna/sna_accel.c |   15 ++++++++-------
 3 files changed, 10 insertions(+), 8 deletions(-)

New commits:
commit 22d9bc0bc1ccd869ebcc93f9a57efc8a85840cb8
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Dec 9 23:48:11 2011 +0000

    sna: Use a single definition for the inactive cache timeout
    
    And share it between the timer and the expiration function, just to
    simplify the code.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index efe1c35..1c9da8e 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -1159,7 +1159,7 @@ bool kgem_expire_cache(struct kgem *kgem)
 		list_for_each_entry(bo, &kgem->inactive[i], list) {
 			assert(bo->purged);
 			if (bo->delta) {
-				expire = now - 5;
+				expire = now - MAX_INACTIVE_TIME;
 				break;
 			}
 
diff --git a/src/sna/kgem.h b/src/sna/kgem.h
index 59e64cf..14faa70 100644
--- a/src/sna/kgem.h
+++ b/src/sna/kgem.h
@@ -347,6 +347,7 @@ struct kgem_bo *kgem_create_buffer(struct kgem *kgem,
 void kgem_buffer_read_sync(struct kgem *kgem, struct kgem_bo *bo);
 
 void kgem_throttle(struct kgem *kgem);
+#define MAX_INACTIVE_TIME 10
 bool kgem_expire_cache(struct kgem *kgem);
 void kgem_cleanup_cache(struct kgem *kgem);
 
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index e4d6ffb..db22507 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -8474,13 +8474,9 @@ static Bool sna_accel_do_expire(struct sna *sna)
 	if (sna->timer[EXPIRE_TIMER] == -1)
 		return TRUE;
 
-	/* Initial expiration after 5s. */
-	to.it_value.tv_sec = 5;
-	to.it_value.tv_nsec = 0;
-
-	/* Then periodic update every 10s.*/
-	to.it_interval.tv_sec = 10;
+	to.it_interval.tv_sec = MAX_INACTIVE_TIME;
 	to.it_interval.tv_nsec = 0;
+	to.it_value = to.it_interval;
 	timerfd_settime(sna->timer[EXPIRE_TIMER], 0, &to, NULL);
 
 	sna->timer_active |= 1 << EXPIRE_TIMER;
commit eb3e04d960cd749adf696ba15c501a17cd1a184e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Dec 9 23:36:56 2011 +0000

    sna: Fallback to ordinary monotonic clock if coarse is not supported
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index b6a5626..e4d6ffb 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -8513,11 +8513,16 @@ static void sna_accel_create_timers(struct sna *sna)
 {
 	int id;
 
+	/* XXX Can we replace this with OSTimer provided by dix? */
+
 #ifdef CLOCK_MONOTONIC_COARSE
 	for (id = 0; id < NUM_FINE_TIMERS; id++)
 		sna->timer[id] = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
-	for (; id < NUM_TIMERS; id++)
+	for (; id < NUM_TIMERS; id++) {
 		sna->timer[id] = timerfd_create(CLOCK_MONOTONIC_COARSE, TFD_NONBLOCK);
+		if (sna->timer[id] == -1)
+			sna->timer[id] = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
+	}
 #else
 	for (id = 0; id < NUM_TIMERS; id++)
 		sna->timer[id] = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);


More information about the xorg-commit mailing list