lkml.org 
[lkml]   [2013]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: 3.8-rc2 lockdep complains about console_lock vs. fb_notifier_list.rwsem
From
On Wed, Jan 16, 2013 at 12:07 PM, Sedat Dilek <sedat.dilek@gmail.com> wrote:
> On Wed, Jan 16, 2013 at 10:59 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote:
>> On Wed, Jan 16, 2013 at 10:52 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote:
>>> On Wed, Jan 16, 2013 at 10:35 AM, Takashi Iwai <tiwai@suse.de> wrote:
>>>> At Wed, 16 Jan 2013 10:21:46 +0100,
>>>> Sedat Dilek wrote:
>>>>>
>>>>> On Tue, Jan 15, 2013 at 3:25 PM, Takashi Iwai <tiwai@suse.de> wrote:
>>>>> > At Sat, 5 Jan 2013 13:13:27 +0100,
>>>>> > Sedat Dilek wrote:
>>>>> >>
>>>>> >> Hi Jiri,
>>>>> >>
>>>>> >> ...known issue (see thread in [1]), please feel free to test patches
>>>>> >> from Alan and Andrew (see [1], [2] and [3]) and report.
>>>>> >>
>>>>> >> Regards,
>>>>> >> - Sedat -
>>>>> >>
>>>>> >> [1] http://marc.info/?t=135309396400003&r=1&w=2
>>>>> >> [2] http://ozlabs.org/~akpm/mmots/broken-out/fb-rework-locking-to-fix-lock-ordering-on-takeover.patch
>>>>> >> [3] http://ozlabs.org/~akpm/mmots/broken-out/fb-rework-locking-to-fix-lock-ordering-on-takeover-fix.patch
>>>>> >> [4] http://ozlabs.org/~akpm/mmots/broken-out/fb-rework-locking-to-fix-lock-ordering-on-takeover-fix-2.patch
>>>>> >
>>>>> > I've hit this bug and tried the patch [2] ([3] and [4] are gone).
>>>>> > Unfortunately the deadlock is still reported, as seen below.
>>>>> >
>>>>> > A similar fix for fbcon_unbind(), splitting an unlocked version of
>>>>> > unbind_con_driver() and call it?
>>>>> >
>>>>> > (BTW, the patch [2] contains strange characters in the comments, and
>>>>> > has a few coding issues easily detected by checkpatch.pl.)
>>>>> >
>>>>>
>>>>> [ CCing Rafael as he asked in another thread if I had sent a patch ]
>>>>>
>>>>> I noticed also some these "strange" chars in the patch from Andrew and
>>>>> a patch of mine was sent as
>>>>> "fb-Rework-locking-to-fix-lock-ordering-on-takeover-fix-comments.patch"
>>>>> to the lists.
>>>>>
>>>>> It is strange to me that Andrew or other maintainers himself did not
>>>>> check with "checkpatch.pl".
>>>>> This should be a common testcase!
>>>>> Hey, noone is perfect :-).
>>>>> ( /me has also not checked with that script - I just saw it. )
>>>>>
>>>>> Just as a note to the issue in general:
>>>>> Andrew took over the patch from Alan which is very honest - he is not
>>>>> the active TTY maintainer!
>>>>> Didn't Greg takeover maintenance from Alan (after a dispute and blaming Alan)?
>>>>> If this is true, why the hell is Greg not CCed?
>>>>
>>>> Let's do it :)
>>>>
>>>> Greg, Jiri, this bug hits already quite a few people.
>>>>
>>>> I can reproduce the bug easily on a machine with a radeon graphics.
>>>> It appears always at boot when lockdep is enabled.
>>>>
>>>>
>>>>> Thanks for the real patch in the followup of this thread!
>>>>> Who will take care of it :-)?
>>>>
>>>> Either tty maintainer, or fb maintainer, or Andrew?
>>>>
>>>> FWIW, Andrew took my patch in mm:
>>>> http://ozlabs.org/~akpm/mmots/broken-out/fb-rework-locking-to-fix-lock-ordering-on-takeover.patch
>>>> http://ozlabs.org/~akpm/mmots/broken-out/fb-yet-another-band-aid-for-fixing-lockdep-mess.patch
>>>>
>>>
>>> [ CCing linux-next ML ]
>>>
>>> Thanks for all your efforts to get this fb-issue nailed down for mainline!
>>>
>>> Just as a note being a Linux-Next customer:
>>>
>>> "fb-yet-another-band-aid-for-fixing-lockdep-mess.patch" did not hit
>>> next-20130116!
>>> Thanks for the link!
>>>
>>> Normally Andrew sents out a mmotm release marking patches from his
>>> tree destinated for Linux-Next with a "*".
>>>
>>> To quote from the latest mmotm release-notes:
>>>
>>> "This mmotm tree contains the following patches against 3.8-rc3:
>>> (patches marked "*" will be included in linux-next)"
>>>
>>> But anyway this stuff is Linux-3.8 material as well.
>>>
>>
>> JYI: [1] now does NOT have anymore those "strange" chars, Thanks Takashi san.
>>
>> I will test next-20130116 with both fb-fixes as -2 kernel.
>> ( Running LTP-lite on my "naked" -1 kernel only with my kbuild/deb-pkg-fixes. )
>>
>> Thanks to everyone involved.
>>
>
> I have reverted the three fb-fixes from akpm-tree in next-20130116...
> ...and applied the two fb-fixes from mmotm-tree (see attached patches file).
>
> FYI: The 1st patch from mmotm-tree is a (proper) replacement for the 3
> patches in Linux-Next.
>
> Furthermore, I made some quick testing:
> Booting into the system is fine.
> Suspend + resume looks good (see dmesg.diff).
>
> See also attached files!
>

En plus, I have run successfully LTP-lite.

$ egrep -i 'error|fail'
runltplite-results_3.8.0-rc3-next20130116-2-iniza-generic.txt | egrep
-v -i 'expected' | wc -l
208

I do not want to flood the MLs, so people wanting full LTP-lite report
(~600KiB) can contact me.

- Sedat -

> - Sedat -
>
>> - Sedat -
>>
>> [1] http://ozlabs.org/~akpm/mmots/broken-out/fb-rework-locking-to-fix-lock-ordering-on-takeover.patch
>> [2] http://ozlabs.org/~akpm/mmots/broken-out/fb-yet-another-band-aid-for-fixing-lockdep-mess.patch
>>> - Sedat -
>>>
>>>>
>>>> thanks,
>>>>
>>>> Takashi
PASS: error count is 0
bind02 1 TPASS : correct error
chmod01 2 TPASS : chmod(2) error when accessing non-existent object through symbolic link is caught
chown04 1 TPASS : chown failed: TEST_ERRNO=EPERM(1): Operation not permitted
chown04 2 TPASS : chown failed: TEST_ERRNO=EACCES(13): Permission denied
chown04 3 TPASS : chown failed: TEST_ERRNO=EFAULT(14): Bad address
chown04 4 TPASS : chown failed: TEST_ERRNO=EFAULT(14): Bad address
chown04 5 TPASS : chown failed: TEST_ERRNO=ENAMETOOLONG(36): File name too long
chown04 6 TPASS : chown failed: TEST_ERRNO=ENOENT(2): No such file or directory
chown04 7 TPASS : chown failed: TEST_ERRNO=ENOTDIR(20): Not a directory
flock01 1 TPASS : flock() succeded with Shared Lock, returned error number=0
flock01 2 TPASS : flock() succeded with Unlock, returned error number=0
flock01 3 TPASS : flock() succeded with Exclusive Lock, returned error number=0
fork06 0 TINFO : failures 0
getpriority02 1 TPASS : getpriority(2) fails, Invalid 'which' value specified, errno:22
getpriority02 2 TPASS : getpriority(2) fails, Invalid 'who' value specified, errno:3
getpriority02 3 TPASS : getpriority(2) fails, Invalid 'who' value specified, errno:3
getpriority02 4 TPASS : getpriority(2) fails, Invalid 'who' value specified, errno:3
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty0
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty1
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty10
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty11
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty12
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty13
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty14
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty15
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty16
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty17
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty18
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty19
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty2
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty20
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty21
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty22
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty23
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty24
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty25
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty26
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty27
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty28
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty29
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty3
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty30
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty31
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty32
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty33
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty34
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty35
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty36
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty37
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty38
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty39
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty4
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty40
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty41
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty42
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty43
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty44
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty45
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty46
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty47
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty48
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty49
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty5
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty50
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty51
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty52
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty53
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty54
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty55
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty56
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty57
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty58
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty59
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty6
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty60
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty61
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty62
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty63
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty7
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty8
ioctl01_02 1 TFAIL : ioctl01 Failed with /dev/tty9
kill failed with EPERM
lchown02 1 TPASS : lchown(2) fails, Process is not owner/root, errno:1
lchown02 2 TPASS : lchown(2) fails, Search permission denied, errno:13
lchown02 3 TPASS : lchown(2) fails, Address beyond address space, errno:14
lchown02 4 TPASS : lchown(2) fails, Unaccessible address space, errno:14
lchown02 5 TPASS : lchown(2) fails, Pathname too long, errno:36
lchown02 6 TPASS : lchown(2) fails, Path contains regular file, errno:20
lchown02 7 TPASS : lchown(2) fails, Pathname is empty, errno:2
link04 1 TPASS : link(<non-existent file>, <nefile>) Failed, errno=2
link04 2 TPASS : link(<path is empty string>, <nefile>) Failed, errno=2
link04 3 TPASS : link(<path contains a non-existent file>, <nefile>) Failed, errno=2
link04 4 TPASS : link(<path contains a regular file>, <nefile>) Failed, errno=20
link04 5 TPASS : link(<pathname too long>, <nefile>) Failed, errno=36
link04 6 TPASS : link(<address beyond address space>, <nefile>) Failed, errno=14
link04 7 TPASS : link(<negative address>, <nefile>) Failed, errno=14
link04 8 TPASS : link(<regfile>, <empty string>) Failed, errno=2
link04 9 TPASS : link(<regfile>, <path contains a non-existent file>) Failed, errno=2
link04 10 TPASS : link(<regfile>, <path contains a regular file>) Failed, errno=2
link04 11 TPASS : link(<regfile>, <pathname too long>) Failed, errno=36
link04 12 TPASS : link(<regfile>, <address beyond address space>) Failed, errno=14
link04 13 TPASS : link(<regfile>, <negative address>) Failed, errno=14
link04 14 TPASS : link(<regfile>, <regfile2>) Failed, errno=17
llseek02 1 TPASS : llseek() fails, 'whence' argument is not valid, errno:22
llseek02 2 TPASS : llseek() fails, 'fd' is not an open file descriptor, errno:9
lseek02 1 TPASS : lseek(-1, 1, SEEK_SET) Failed, errno=9 : Bad file descriptor
lseek03 1 TPASS : lseek(tfile_5520, 1, 5) Failed, errno=22 : Invalid argument
lseek03 2 TPASS : lseek(tfile_5520, 1, -1) Failed, errno=22 : Invalid argument
lseek03 3 TPASS : lseek(tfile_5520, 1, 7) Failed, errno=22 : Invalid argument
lseek04 1 TPASS : lseek(fifofd, 1, SEEK_SET) Failed, errno=29 : Illegal seek
lseek05 1 TPASS : lseek(pipefd, 1, SEEK_SET) Failed, errno=29 : Illegal seek
lseek10 1 TPASS : lseek() fails, 'fd' associated with a pipe/fifo, errno:29
lseek10 2 TPASS : lseek() fails, 'whence' argument is not valid, errno:22
lseek10 3 TPASS : lseek() fails, 'fd' is not an open file descriptor, errno:9
lstat02 1 TPASS : lstat() fails, No Search permissions to process, errno:13
lstat02 2 TPASS : lstat() fails, Negative address, errno:14
lstat02 3 TPASS : lstat() fails, Address beyond address space, errno:14
lstat02 4 TPASS : lstat() fails, Pathname too long, errno:36
lstat02 5 TPASS : lstat() fails, Pathname is empty, errno:2
lstat02 6 TPASS : lstat() fails, Path contains regular file, errno:20
mknod06 1 TPASS : mknod() fails, Specified node already exists, errno:17
mknod06 2 TPASS : mknod() fails, Negative address, errno:14
mknod06 3 TPASS : mknod() fails, Address beyond address space, errno:14
mknod06 4 TPASS : mknod() fails, Non-existent file, errno:2
mknod06 5 TPASS : mknod() fails, Pathname is empty, errno:2
mknod06 6 TPASS : mknod() fails, Pathname too long, errno:36
mknod06 7 TPASS : mknod() fails, Path contains regular file, errno:20
mmap06 1 TPASS : mmap failed with EACCES
mmap07 1 TPASS : mmap failed with EACCES
mmap08 1 TPASS : mmap failed with EBADF
mremap02 1 TPASS : mremap() Failed, 'invalid argument specified' - errno 22
mremap03 1 TPASS : mremap() Fails, 'old region not mapped', errno 14
mremap04 1 TPASS : mremap() failed, 'MREMAP_MAYMOVE flag unset', errno 12
open01 3 TPASS : open(2) with (O_CREAT | O_EXCL) error is caught when creating object file through symbolic link file
open01 4 TPASS : open(2) error with O_RDWR is caught when processing symbolic link file which points at no object file
pipe06 1 TPASS : failed with EMFILE
pread02 1 TPASS : pread() fails, file descriptor is a PIPE or FIFO, errno:29
pread02 2 TPASS : pread() fails, specified offset is -ve or invalid, errno:22
readlink01 3 TPASS : Reading a symbolic link which exceeds maximum pathname error is caught
readlink01 4 TPASS : Reading a nonsymbolic link file error condition is caught. EINVAL is returned
rmdir05 1 TPASS : rmdir(".") failed to remove the current working directory. Returned 22 : Invalid argument
sched_getscheduler02 1 TPASS : call failed with ESRCH
setgroups03 1 TPASS : setgroups(65537) fails, Size is > sysconf(_SC_NGROUPS_MAX), errno=22
setgroups03 2 TPASS : setgroups(65536) fails, Permission denied, not super-user, errno=1
setregid02 0 TINFO : ERROR: After setregid(-1, root), real gid = 65534; effective gid = 65534
setregid02 0 TINFO : ERROR: After setregid(-1, bin) real gid = 65534; effective gid = 65534
setregid02 0 TINFO : ERROR: After setregid(root,-1), real gid = 65534; effective gid = 65534
setregid02 0 TINFO : ERROR: After setregid(bin, -1), real gid = 65534; effective gid = 65534
setregid02 0 TINFO : ERROR: After setregid(root, bin) real gid = 65534; effective gid = 65534
setregid02 0 TINFO : ERROR: After setregid(bin, root), real gid = 65534; effective gid = 65534
setregid02 0 TINFO : ERROR: After setregid(invalid group, -1), real gid = 65534; effective gid = 65534
setregid02 0 TINFO : ERROR: After setregid(-1, invalid group), real gid = 65534; effective gid = 65534
shmctl02 6 TCONF : shmctl() did not fail for non-root user.This may be okay for your distribution.
shmctl02 7 TCONF : shmctl() did not fail for non-root user.This may be okay for your distribution.
sigaltstack02 1 TPASS : stgaltstack() fails, Invalid Flag value, errno:22
sigaltstack02 2 TPASS : stgaltstack() fails, alternate stack is < MINSIGSTKSZ, errno:12
sighold02 1 TPASS : Sighold called without error for 57 of 64 signals
stat03 1 TPASS : stat() fails, No Search permissions to process, errno:13
stat03 2 TPASS : stat() fails, Address beyond address space, errno:14
stat03 3 TPASS : stat() fails, Negative address, errno:14
stat03 4 TPASS : stat() fails, Pathname too long, errno:36
stat03 5 TPASS : stat() fails, Pathname is empty, errno:2
stat03 6 TPASS : stat() fails, Path contains regular file, errno:20
stat04 2 TPASS : Stat(2) error when accessing non-existent object through symbolic link is caught
stat06 1 TPASS : stat(<non-existent file>, &stbuf) Failed, errno=2
stat06 2 TPASS : stat(<path is empty string>, &stbuf) Failed, errno=2
stat06 3 TPASS : stat(<path contains a non-existent file>, &stbuf) Failed, errno=2
stat06 4 TPASS : stat(<path contains a regular file>, &stbuf) Failed, errno=20
stat06 5 TPASS : stat(<pathname too long>, &stbuf) Failed, errno=36
stat06 6 TPASS : stat(<address beyond address space>, &stbuf) Failed, errno=14
stat06 7 TPASS : stat(<negative address>, &stbuf) Failed, errno=14
symlink01 4 TPASS : Creating an existing symbolic link file error is caught
symlink01 5 TPASS : Creating a symbolic link which exceeds maximum pathname error is caught
symlink03 1 TPASS : symlink() Fails, No Search permissions to process, errno=13
symlink03 2 TPASS : symlink() Fails, Specified symlink already exists, errno=17
symlink03 3 TPASS : symlink() Fails, Address beyond address space, errno=14
symlink03 4 TPASS : symlink() Fails, Negative address, errno=14
symlink03 5 TPASS : symlink() Fails, Symlink path too long, errno=36
symlink03 6 TPASS : symlink() Fails, Symlink Pathname is empty, errno=2
symlink03 7 TPASS : symlink() Fails, Symlink Path contains regular file, errno=20
sysinfo02 1 TPASS : Test to check the error code 14 PASSED
truncate03 1 TPASS : truncate() fails, No Search permissions to process, errno=13
truncate03 2 TPASS : truncate() fails, Path contains regular file, errno=20
truncate03 3 TPASS : truncate() fails, Address beyond address space, errno=14
truncate03 4 TPASS : truncate() fails, Negative address, errno=14
truncate03 5 TPASS : truncate() fails, Pathname too long, errno=36
truncate03 6 TPASS : truncate() fails, Pathname is empty, errno=2
truncate04 1 TPASS : truncate() fails, File is a directory, errno=21
unlink07 1 TPASS : unlink(<non-existent file>) Failed, errno=2
unlink07 2 TPASS : unlink(<path is empty string>) Failed, errno=2
unlink07 3 TPASS : unlink(<path contains a non-existent file>) Failed, errno=2
unlink07 4 TPASS : unlink(<address beyond address space>) Failed, errno=14
unlink07 5 TPASS : unlink(<path contains a regular file>) Failed, errno=20
unlink07 6 TPASS : unlink(<address beyond address space>) Failed, errno=14
unlink07 7 TPASS : unlink(<pathname too long>) Failed, errno=36
unlink07 8 TPASS : unlink(<negative address>) Failed, errno=14
unlink08 3 TPASS : unlink(<directory>) Failed, errno=21
utime01 2 TPASS : utime(2) error when accessing non-existent object through symbolic link is caught
utime06 1 TPASS : utime() fails, Permission denied to modify file time, errno:13
utime06 2 TPASS : utime() fails, Specified file doesn't exist, errno:2
write03 0 TINFO : Enter Block 1: test to check if write corrupts the file when write fails
write03 1 TPASS : failure of write(2) didnot corrupt the file
mtest01 1 TFAIL : More memory than the maximum amount you specified is already being used
mtest01 1 TFAIL : More memory than the maximum amount you specified is already being used
gf17 1 TFAIL : Test failed
gf18 1 TFAIL : Test failed
INFO: ltp-pan reported some tests FAIL
\
 
 \ /
  Last update: 2013-01-16 14:21    [W:0.054 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site