On Wed, Jan 16, 2013 at 12:07 PM, Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: > On Wed, Jan 16, 2013 at 10:59 AM, Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: >> On Wed, Jan 16, 2013 at 10:52 AM, Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: >>> On Wed, Jan 16, 2013 at 10:35 AM, Takashi Iwai <tiwai@xxxxxxx> 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@xxxxxxx> 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