View previous topic :: View next topic |
Author |
Message |
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
Posted: Mon Mar 25, 2013 9:54 pm Post subject: getting ZFSonLinux to work with rt-kernel |
|
|
Hi,
let's continue the discussion here on how to get ZFSonLinux to work on rt-kernels
from the "AMD64 system slow/unresponsive during disk access (Part 2)" thread
will post a working kernel config (compiled fine) shortly
still have to boot-test it though ...
edit:
seems like the intel-driver is broken & currently not compatible with realtime kernels:
Quote: | CC [M] drivers/gpu/drm/ttm/ttm_page_alloc.o
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_wait_for_error’:
drivers/gpu/drm/i915/i915_gem.c:119:3: warning: passing argument 1 of ‘rt_spin_lock’ from incompatible pointer type [enabled by default]
spin_lock_irqsave(&x->wait.lock, flags);
^
In file included from include/linux/spinlock.h:273:0,
from include/linux/wait.h:7,
from include/linux/fs.h:6,
from include/drm/drmP.h:47,
from drivers/gpu/drm/i915/i915_gem.c:28:
include/linux/spinlock_rt.h:21:24: note: expected ‘struct spinlock_t *’ but argument is of type ‘struct raw_spinlock_t *’
extern void __lockfunc rt_spin_lock(spinlock_t *lock);
^
drivers/gpu/drm/i915/i915_gem.c:121:3: warning: passing argument 1 of ‘rt_spin_unlock’ from incompatible pointer type [enabled by default]
spin_unlock_irqrestore(&x->wait.lock, flags);
^
In file included from include/linux/spinlock.h:273:0,
from include/linux/wait.h:7,
from include/linux/fs.h:6,
from include/drm/drmP.h:47,
from drivers/gpu/drm/i915/i915_gem.c:28:
include/linux/spinlock_rt.h:24:24: note: expected ‘struct spinlock_t *’ but argument is of type ‘struct raw_spinlock_t *’
extern void __lockfunc rt_spin_unlock(spinlock_t *lock);
^
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_check_wedge’:
drivers/gpu/drm/i915/i915_gem.c:952:3: warning: passing argument 1 of ‘rt_spin_lock’ from incompatible pointer type [enabled by default]
spin_lock_irqsave(&x->wait.lock, flags);
^
In file included from include/linux/spinlock.h:273:0,
from include/linux/wait.h:7,
from include/linux/fs.h:6,
from include/drm/drmP.h:47,
from drivers/gpu/drm/i915/i915_gem.c:28:
include/linux/spinlock_rt.h:21:24: note: expected ‘struct spinlock_t *’ but argument is of type ‘struct raw_spinlock_t *’
extern void __lockfunc rt_spin_lock(spinlock_t *lock);
^
drivers/gpu/drm/i915/i915_gem.c:954:3: warning: passing argument 1 of ‘rt_spin_unlock’ from incompatible pointer type [enabled by default]
spin_unlock_irqrestore(&x->wait.lock, flags);
^
In file included from include/linux/spinlock.h:273:0,
from include/linux/wait.h:7,
from include/linux/fs.h:6,
from include/drm/drmP.h:47,
from drivers/gpu/drm/i915/i915_gem.c:28:
include/linux/spinlock_rt.h:24:24: note: expected ‘struct spinlock_t *’ but argument is of type ‘struct raw_spinlock_t *’
extern void __lockfunc rt_spin_unlock(spinlock_t *lock);
^
drivers/gpu/drm/i915/i915_gem.c: In function ‘mutex_is_locked_by’:
drivers/gpu/drm/i915/i915_gem.c:4370:14: error: ‘struct mutex’ has no member named ‘owner’
return mutex->owner == task;
^
drivers/gpu/drm/i915/i915_gem.c:4375:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[4]: *** [drivers/gpu/drm/i915/i915_gem.o] Error 1
make[3]: *** [drivers/gpu/drm/i915] Error 2
make[3]: *** Waiting for unfinished jobs....
|
ok - here's the kernel-config:
http://pastebin.com/rL66Sian
hope you can base a - for you working - configuration on it _________________ https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa
Hardcore Gentoo Linux user since 2004 |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
ryao Retired Dev
Joined: 27 Feb 2012 Posts: 132
|
Posted: Tue Apr 02, 2013 5:33 am Post subject: |
|
|
I have not forgotten about this, but there are a few other bugs that are ahead of this in my bug queue. I will get to this soon. |
|
Back to top |
|
|
aCOSwt Bodhisattva
Joined: 19 Oct 2007 Posts: 2537 Location: Hilbert space
|
Posted: Tue Apr 02, 2013 9:07 am Post subject: Re: getting ZFSonLinux to work with rt-kernel |
|
|
kernelOfTruth wrote: | seems like the intel-driver is broken & currently not compatible with realtime kernels:
Quote: | ...
make[4]: *** [drivers/gpu/drm/i915/i915_gem.o] Error 1
... |
|
I think the following patch is needed in order to build the i915 on the last 3.8.4_rt1 Code: | diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index de45b60..817e60b 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -116,9 +116,9 @@ i915_gem_wait_for_error(struct drm_device *dev)
* end up waiting upon a subsequent completion event that
* will never happen.
*/
- spin_lock_irqsave(&x->wait.lock, flags);
+ raw_spin_lock_irqsave(&x->wait.lock, flags);
x->done++;
- spin_unlock_irqrestore(&x->wait.lock, flags);
+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
}
return 0;
}
@@ -949,9 +949,9 @@ i915_gem_check_wedge(struct drm_i915_private *dev_priv,
unsigned long flags;
/* Give the error handler a chance to run. */
- spin_lock_irqsave(&x->wait.lock, flags);
+ raw_spin_lock_irqsave(&x->wait.lock, flags);
recovery_complete = x->done > 0;
- spin_unlock_irqrestore(&x->wait.lock, flags);
+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
/* Non-interruptible callers can't handle -EAGAIN, hence return
* -EIO unconditionally for these. */ |
_________________
|
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
Posted: Sat Apr 20, 2013 1:42 pm Post subject: Re: getting ZFSonLinux to work with rt-kernel |
|
|
aCOSwt wrote: | kernelOfTruth wrote: | seems like the intel-driver is broken & currently not compatible with realtime kernels:
Quote: | ...
make[4]: *** [drivers/gpu/drm/i915/i915_gem.o] Error 1
... |
|
I think the following patch is needed in order to build the i915 on the last 3.8.4_rt1 Code: | diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index de45b60..817e60b 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -116,9 +116,9 @@ i915_gem_wait_for_error(struct drm_device *dev)
* end up waiting upon a subsequent completion event that
* will never happen.
*/
- spin_lock_irqsave(&x->wait.lock, flags);
+ raw_spin_lock_irqsave(&x->wait.lock, flags);
x->done++;
- spin_unlock_irqrestore(&x->wait.lock, flags);
+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
}
return 0;
}
@@ -949,9 +949,9 @@ i915_gem_check_wedge(struct drm_i915_private *dev_priv,
unsigned long flags;
/* Give the error handler a chance to run. */
- spin_lock_irqsave(&x->wait.lock, flags);
+ raw_spin_lock_irqsave(&x->wait.lock, flags);
recovery_complete = x->done > 0;
- spin_unlock_irqrestore(&x->wait.lock, flags);
+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
/* Non-interruptible callers can't handle -EAGAIN, hence return
* -EIO unconditionally for these. */ |
|
thanks ! _________________ https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa
Hardcore Gentoo Linux user since 2004 |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|