Re: NFS write OOPS with 2.6.29.2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2009-05-11 at 12:45 +0000, Holger Kiehl wrote:
> On Mon, 11 May 2009, Trond Myklebust wrote:
> 
> > On Mon, 2009-05-11 at 09:24 +0000, Holger Kiehl wrote:
> >> On Sun, 10 May 2009, Trond Myklebust wrote:
> >>
> >>> On Sat, 2009-05-09 at 19:16 +0000, Holger Kiehl wrote:
> >>>> On Mon, 4 May 2009, Andrew Morton wrote:
> >>>>
> >>>>>
> >>>>> (cc linux-nfs)
> >>>>>
> >>>>> On Sun, 3 May 2009 16:03:38 +0000 (GMT) Holger Kiehl <Holger.Kiehl@xxxxxx> wrote:
> >>>>>
> >>>>>> Hello
> >>>>>>
> >>>>>> With plain kernel 2.6.29.2 I get the following OOPS (several of them) when
> >>>>>> writing lots of small files on the client system:
> >>>>>>
> >>>>>>     May  3 18:48:34 obelix kernel: ------------[ cut here ]------------
> >>>>>>     May  3 18:48:34 obelix kernel: kernel BUG at fs/nfs/write.c:252!
> >>>>>
> >>>>> I think this is a well-know bug, and fixes should be available in 2.6.29.3?
> >>>>>
> >>>> Thanks for this information. I just tried 2.6.29.3 and it still oopses.
> >>>> Are there any patches I can try?
> >>>
> >>> The attached backports against 2.6.29 are untested, but they are known
> >>> to compile at least. Could you give them a try?
> >>>
> >> Thanks. They do compile but when there is a mmap on the NFS drive the
> >> program gets a SIGBUS:
> >>
> >>     unlink("/home/afdbench/afd2/fifodir/AFD_ACTIVE") = 0
> >>     close(3)                                = 0
> >>     open("/home/afdbench/afd2/fifodir/AFD_ACTIVE", O_RDWR|O_CREAT|O_TRUNC|O_CLOEXEC, 0600) = 3
> >>     lseek(3, 78, SEEK_SET)                  = 78
> >>     write(3, "\377"..., 1)                  = 1
> >>     mmap(NULL, 78, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x7f8045cdb000
> >>     --- SIGBUS (Bus error) @ 0 (0) ---
> >>
> >> This was with 2.6.29.3 plus the patches you send me.
> >>
> >> Holger
> >
> > Oh, duh... You need this little patchlet too.
> >
> Thanks! Now it works. One more problem I have is with splice(). My
> application reports the following error:
> 
>     splice() error : Invalid argument
> 
> When it is called as follows:
> 
>      if ((bytes_written = splice(fd_pipe[0], NULL, to_fd,
>                                  NULL, bytes_read,
>                                  SPLICE_F_MOVE | SPLICE_F_MORE)) == -1)
> 
> Or may I not use splice() over NFS?

The read part is there, but the write part is still missing (just an
oversight - implementing it is pretty trivial). I'm planning on fixing
that for 2.6.31.

Cheers
  Trond

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux