All of lore.kernel.org
 help / color / mirror / Atom feed
* syncfs via syscall doesn not work
@ 2012-11-23  8:19 Stefan Priebe - Profihost AG
  2012-11-24  3:07 ` Sage Weil
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Priebe - Profihost AG @ 2012-11-23  8:19 UTC (permalink / raw)
  To: ceph-devel@vger.kernel.org

Hello list,

i've seen that next branch caontains the "Try using syscall() for syncfs 
if not supported directly by glibc" patch. But this does not work for me.

I've tested this on a Debian Squeeze box with default glibc and a 3.6.7 
Kernel.

The OSD gives me the following output:
2012-11-23 08:55:54.650182 7f7bc7c1f780  0 filestore(/ceph/osd.11/) 
mount FIEMAP ioctl is supported and appears to work
2012-11-23 08:55:54.650190 7f7bc7c1f780  0 filestore(/ceph/osd.11/) 
mount FIEMAP ioctl is disabled via 'filestore fiemap' config option
2012-11-23 08:55:54.650355 7f7bc7c1f780  0 filestore(/ceph/osd.11/) 
mount did NOT detect btrfs
2012-11-23 08:55:54.650358 7f7bc7c1f780  0 filestore(/ceph/osd.11/) 
mount syncfs(2) syscall not support by glibc
2012-11-23 08:55:54.650361 7f7bc7c1f780  0 filestore(/ceph/osd.11/) 
mount no syncfs(2), must use sync(2).
2012-11-23 08:55:54.650362 7f7bc7c1f780  0 filestore(/ceph/osd.11/) 
mount WARNING: multiple ceph-osd daemons on the same host will be slow
2012-11-23 08:55:54.650391 7f7bc7c1f780  0 filestore(/ceph/osd.11/) 
mount found snaps <>
2012-11-23 08:55:54.652413 7f7bc7c1f780  0 filestore(/ceph/osd.11/) 
mount: enabling WRITEAHEAD journal mode: btrfs not detected

When i build ceph against a patched glibc i get:

2012-11-23 09:19:39.339597 7fee3e497780  0 ceph version 
0.54-676-g9d366a0 (9d366a0706a58b1612dd95831533c5a02b87f5fc), process 
ceph-osd, pid 9165
starting osd.11 at :/0 osd_data /ceph/osd.11/ /ceph/journal/osd.11.journal
2012-11-23 09:19:39.347924 7fee3e497780  0 filestore(/ceph/osd.11/) 
mount FIEMAP ioctl is supported and appears to work
2012-11-23 09:19:39.347932 7fee3e497780  0 filestore(/ceph/osd.11/) 
mount FIEMAP ioctl is disabled via 'filestore fiemap' config option
2012-11-23 09:19:39.348111 7fee3e497780  0 filestore(/ceph/osd.11/) 
mount did NOT detect btrfs
2012-11-23 09:19:39.349415 7fee3e497780  0 filestore(/ceph/osd.11/) 
mount syncfs(2) syscall fully supported (by glibc and kernel)
2012-11-23 09:19:39.349461 7fee3e497780  0 filestore(/ceph/osd.11/) 
mount found snaps <>
2012-11-23 09:19:39.350661 7fee3e497780  0 filestore(/ceph/osd.11/) 
mount: enabling WRITEAHEAD journal mode: btrfs not detected

Greets,
Stefan

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: syncfs via syscall doesn not work
  2012-11-23  8:19 syncfs via syscall doesn not work Stefan Priebe - Profihost AG
@ 2012-11-24  3:07 ` Sage Weil
  2012-11-24  5:34   ` Stefan Priebe - Profihost AG
  0 siblings, 1 reply; 7+ messages in thread
From: Sage Weil @ 2012-11-24  3:07 UTC (permalink / raw)
  To: Stefan Priebe - Profihost AG; +Cc: ceph-devel@vger.kernel.org

On Fri, 23 Nov 2012, Stefan Priebe - Profihost AG wrote:
> Hello list,
> 
> i've seen that next branch caontains the "Try using syscall() for syncfs if
> not supported directly by glibc" patch. But this does not work for me.
> 
> I've tested this on a Debian Squeeze box with default glibc and a 3.6.7
> Kernel.
> 
> The OSD gives me the following output:
> 2012-11-23 08:55:54.650182 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> FIEMAP ioctl is supported and appears to work
> 2012-11-23 08:55:54.650190 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> FIEMAP ioctl is disabled via 'filestore fiemap' config option
> 2012-11-23 08:55:54.650355 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount did
> NOT detect btrfs
> 2012-11-23 08:55:54.650358 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> syncfs(2) syscall not support by glibc
> 2012-11-23 08:55:54.650361 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount no
> syncfs(2), must use sync(2).
> 2012-11-23 08:55:54.650362 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> WARNING: multiple ceph-osd daemons on the same host will be slow
> 2012-11-23 08:55:54.650391 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> found snaps <>
> 2012-11-23 08:55:54.652413 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount:
> enabling WRITEAHEAD journal mode: btrfs not detected

Is SYS_syncfs defined anywhere in /usr/include?  Is the kernel headers 
package installed?

sage


> 
> When i build ceph against a patched glibc i get:
> 
> 2012-11-23 09:19:39.339597 7fee3e497780  0 ceph version 0.54-676-g9d366a0
> (9d366a0706a58b1612dd95831533c5a02b87f5fc), process ceph-osd, pid 9165
> starting osd.11 at :/0 osd_data /ceph/osd.11/ /ceph/journal/osd.11.journal
> 2012-11-23 09:19:39.347924 7fee3e497780  0 filestore(/ceph/osd.11/) mount
> FIEMAP ioctl is supported and appears to work
> 2012-11-23 09:19:39.347932 7fee3e497780  0 filestore(/ceph/osd.11/) mount
> FIEMAP ioctl is disabled via 'filestore fiemap' config option
> 2012-11-23 09:19:39.348111 7fee3e497780  0 filestore(/ceph/osd.11/) mount did
> NOT detect btrfs
> 2012-11-23 09:19:39.349415 7fee3e497780  0 filestore(/ceph/osd.11/) mount
> syncfs(2) syscall fully supported (by glibc and kernel)
> 2012-11-23 09:19:39.349461 7fee3e497780  0 filestore(/ceph/osd.11/) mount
> found snaps <>
> 2012-11-23 09:19:39.350661 7fee3e497780  0 filestore(/ceph/osd.11/) mount:
> enabling WRITEAHEAD journal mode: btrfs not detected
> 
> Greets,
> Stefan
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: syncfs via syscall doesn not work
  2012-11-24  3:07 ` Sage Weil
@ 2012-11-24  5:34   ` Stefan Priebe - Profihost AG
  2012-11-24 17:16     ` Sage Weil
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Priebe - Profihost AG @ 2012-11-24  5:34 UTC (permalink / raw)
  To: Sage Weil; +Cc: ceph-devel@vger.kernel.org

At the machine compiling? Yes!

Am 24.11.2012 um 04:07 schrieb Sage Weil <sage@inktank.com>:

> On Fri, 23 Nov 2012, Stefan Priebe - Profihost AG wrote:
>> Hello list,
>> 
>> i've seen that next branch caontains the "Try using syscall() for syncfs if
>> not supported directly by glibc" patch. But this does not work for me.
>> 
>> I've tested this on a Debian Squeeze box with default glibc and a 3.6.7
>> Kernel.
>> 
>> The OSD gives me the following output:
>> 2012-11-23 08:55:54.650182 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
>> FIEMAP ioctl is supported and appears to work
>> 2012-11-23 08:55:54.650190 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
>> FIEMAP ioctl is disabled via 'filestore fiemap' config option
>> 2012-11-23 08:55:54.650355 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount did
>> NOT detect btrfs
>> 2012-11-23 08:55:54.650358 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
>> syncfs(2) syscall not support by glibc
>> 2012-11-23 08:55:54.650361 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount no
>> syncfs(2), must use sync(2).
>> 2012-11-23 08:55:54.650362 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
>> WARNING: multiple ceph-osd daemons on the same host will be slow
>> 2012-11-23 08:55:54.650391 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
>> found snaps <>
>> 2012-11-23 08:55:54.652413 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount:
>> enabling WRITEAHEAD journal mode: btrfs not detected
> 
> Is SYS_syncfs defined anywhere in /usr/include?  Is the kernel headers 
> package installed?
> 
> sage
> 
> 
>> 
>> When i build ceph against a patched glibc i get:
>> 
>> 2012-11-23 09:19:39.339597 7fee3e497780  0 ceph version 0.54-676-g9d366a0
>> (9d366a0706a58b1612dd95831533c5a02b87f5fc), process ceph-osd, pid 9165
>> starting osd.11 at :/0 osd_data /ceph/osd.11/ /ceph/journal/osd.11.journal
>> 2012-11-23 09:19:39.347924 7fee3e497780  0 filestore(/ceph/osd.11/) mount
>> FIEMAP ioctl is supported and appears to work
>> 2012-11-23 09:19:39.347932 7fee3e497780  0 filestore(/ceph/osd.11/) mount
>> FIEMAP ioctl is disabled via 'filestore fiemap' config option
>> 2012-11-23 09:19:39.348111 7fee3e497780  0 filestore(/ceph/osd.11/) mount did
>> NOT detect btrfs
>> 2012-11-23 09:19:39.349415 7fee3e497780  0 filestore(/ceph/osd.11/) mount
>> syncfs(2) syscall fully supported (by glibc and kernel)
>> 2012-11-23 09:19:39.349461 7fee3e497780  0 filestore(/ceph/osd.11/) mount
>> found snaps <>
>> 2012-11-23 09:19:39.350661 7fee3e497780  0 filestore(/ceph/osd.11/) mount:
>> enabling WRITEAHEAD journal mode: btrfs not detected
>> 
>> Greets,
>> Stefan
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> 
>> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: syncfs via syscall doesn not work
  2012-11-24  5:34   ` Stefan Priebe - Profihost AG
@ 2012-11-24 17:16     ` Sage Weil
  2012-11-24 20:24       ` Stefan Priebe
  0 siblings, 1 reply; 7+ messages in thread
From: Sage Weil @ 2012-11-24 17:16 UTC (permalink / raw)
  To: Stefan Priebe - Profihost AG; +Cc: ceph-devel@vger.kernel.org

On Sat, 24 Nov 2012, Stefan Priebe - Profihost AG wrote:
> At the machine compiling? Yes!

Hmm, I just tested on my wonky wheezy machine (glibc 2.13, 3.2) and 
system(SYS_syncfs, ..) works for me.  But the #define is in libc6-dev:

vapre:src 08:57 AM $ grep -r SYS_syncfs /usr/include
/usr/include/x86_64-linux-gnu/bits/syscall.h:#define SYS_syncfs 
__NR_syncfs
vapre:src 08:57 AM $ dpkg -S /usr/include/x86_64-linux-gnu/bits/syscall.h
libc6-dev:amd64: /usr/include/x86_64-linux-gnu/bits/syscall.h
vapre:src 09:11 AM $ dpkg -l libc6-dev
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                         Version                      Description
+++-============================-============================-========================================================================
ii  libc6-dev:amd64              2.13-33                      Embedded GNU C Library: Development Libraries and Header Files

Where does SYS_syncfs come from on your machine?

sage



> 
> Am 24.11.2012 um 04:07 schrieb Sage Weil <sage@inktank.com>:
> 
> > On Fri, 23 Nov 2012, Stefan Priebe - Profihost AG wrote:
> >> Hello list,
> >> 
> >> i've seen that next branch caontains the "Try using syscall() for syncfs if
> >> not supported directly by glibc" patch. But this does not work for me.
> >> 
> >> I've tested this on a Debian Squeeze box with default glibc and a 3.6.7
> >> Kernel.
> >> 
> >> The OSD gives me the following output:
> >> 2012-11-23 08:55:54.650182 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> >> FIEMAP ioctl is supported and appears to work
> >> 2012-11-23 08:55:54.650190 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> >> FIEMAP ioctl is disabled via 'filestore fiemap' config option
> >> 2012-11-23 08:55:54.650355 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount did
> >> NOT detect btrfs
> >> 2012-11-23 08:55:54.650358 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> >> syncfs(2) syscall not support by glibc
> >> 2012-11-23 08:55:54.650361 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount no
> >> syncfs(2), must use sync(2).
> >> 2012-11-23 08:55:54.650362 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> >> WARNING: multiple ceph-osd daemons on the same host will be slow
> >> 2012-11-23 08:55:54.650391 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount
> >> found snaps <>
> >> 2012-11-23 08:55:54.652413 7f7bc7c1f780  0 filestore(/ceph/osd.11/) mount:
> >> enabling WRITEAHEAD journal mode: btrfs not detected
> > 
> > Is SYS_syncfs defined anywhere in /usr/include?  Is the kernel headers 
> > package installed?
> > 
> > sage
> > 
> > 
> >> 
> >> When i build ceph against a patched glibc i get:
> >> 
> >> 2012-11-23 09:19:39.339597 7fee3e497780  0 ceph version 0.54-676-g9d366a0
> >> (9d366a0706a58b1612dd95831533c5a02b87f5fc), process ceph-osd, pid 9165
> >> starting osd.11 at :/0 osd_data /ceph/osd.11/ /ceph/journal/osd.11.journal
> >> 2012-11-23 09:19:39.347924 7fee3e497780  0 filestore(/ceph/osd.11/) mount
> >> FIEMAP ioctl is supported and appears to work
> >> 2012-11-23 09:19:39.347932 7fee3e497780  0 filestore(/ceph/osd.11/) mount
> >> FIEMAP ioctl is disabled via 'filestore fiemap' config option
> >> 2012-11-23 09:19:39.348111 7fee3e497780  0 filestore(/ceph/osd.11/) mount did
> >> NOT detect btrfs
> >> 2012-11-23 09:19:39.349415 7fee3e497780  0 filestore(/ceph/osd.11/) mount
> >> syncfs(2) syscall fully supported (by glibc and kernel)
> >> 2012-11-23 09:19:39.349461 7fee3e497780  0 filestore(/ceph/osd.11/) mount
> >> found snaps <>
> >> 2012-11-23 09:19:39.350661 7fee3e497780  0 filestore(/ceph/osd.11/) mount:
> >> enabling WRITEAHEAD journal mode: btrfs not detected
> >> 
> >> Greets,
> >> Stefan
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> >> the body of a message to majordomo@vger.kernel.org
> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >> 
> >> 
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: syncfs via syscall doesn not work
  2012-11-24 17:16     ` Sage Weil
@ 2012-11-24 20:24       ` Stefan Priebe
  2012-11-24 23:20         ` Sage Weil
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Priebe @ 2012-11-24 20:24 UTC (permalink / raw)
  To: Sage Weil; +Cc: ceph-devel@vger.kernel.org

Am 24.11.2012 18:16, schrieb Sage Weil:
> On Sat, 24 Nov 2012, Stefan Priebe - Profihost AG wrote:
>> At the machine compiling? Yes!
>
> Hmm, I just tested on my wonky wheezy machine (glibc 2.13, 3.2) and
> system(SYS_syncfs, ..) works for me.  But the #define is in libc6-dev:

But that means your glibc supports it. Then we don't need the syscall at 
all.

To me it's only present in the kernel headers (linux-libc-dev) like this:

[pb64: ~]# grep -r syncfs /usr/include
/usr/include/asm/unistd_64.h:#define __NR_syncfs 
      306
/usr/include/asm/unistd_64.h:__SYSCALL(__NR_syncfs, sys_syncfs)
/usr/include/asm/unistd_32.h:#define __NR_syncfs             344
/usr/include/asm-generic/unistd.h:#define __NR_syncfs 267
/usr/include/asm-generic/unistd.h:__SYSCALL(__NR_syncfs, sys_syncfs)

Greets,
Stefan

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: syncfs via syscall doesn not work
  2012-11-24 20:24       ` Stefan Priebe
@ 2012-11-24 23:20         ` Sage Weil
  2012-11-25 18:39           ` Stefan Priebe
  0 siblings, 1 reply; 7+ messages in thread
From: Sage Weil @ 2012-11-24 23:20 UTC (permalink / raw)
  To: Stefan Priebe; +Cc: ceph-devel@vger.kernel.org

On Sat, 24 Nov 2012, Stefan Priebe wrote:
> Am 24.11.2012 18:16, schrieb Sage Weil:
> > On Sat, 24 Nov 2012, Stefan Priebe - Profihost AG wrote:
> > > At the machine compiling? Yes!
> > 
> > Hmm, I just tested on my wonky wheezy machine (glibc 2.13, 3.2) and
> > system(SYS_syncfs, ..) works for me.  But the #define is in libc6-dev:
> 
> But that means your glibc supports it. Then we don't need the syscall at 
> all.
>
> To me it's only present in the kernel headers (linux-libc-dev) like 
> this:
> 
> [pb64: ~]# grep -r syncfs /usr/include
> /usr/include/asm/unistd_64.h:#define __NR_syncfs      306
> /usr/include/asm/unistd_64.h:__SYSCALL(__NR_syncfs, sys_syncfs)
> /usr/include/asm/unistd_32.h:#define __NR_syncfs             344
> /usr/include/asm-generic/unistd.h:#define __NR_syncfs 267
> /usr/include/asm-generic/unistd.h:__SYSCALL(__NR_syncfs, sys_syncfs)

Can try wip-syncfs?  It checks for either SYS_syncfs or __NR_syncfs.

sage

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: syncfs via syscall doesn not work
  2012-11-24 23:20         ` Sage Weil
@ 2012-11-25 18:39           ` Stefan Priebe
  0 siblings, 0 replies; 7+ messages in thread
From: Stefan Priebe @ 2012-11-25 18:39 UTC (permalink / raw)
  To: Sage Weil; +Cc: ceph-devel@vger.kernel.org, Alexandre DERUMIER

Am 25.11.2012 00:20, schrieb Sage Weil:
> On Sat, 24 Nov 2012, Stefan Priebe wrote:
>> Am 24.11.2012 18:16, schrieb Sage Weil:
>>> On Sat, 24 Nov 2012, Stefan Priebe - Profihost AG wrote:
>>>> At the machine compiling? Yes!
>>>
>>> Hmm, I just tested on my wonky wheezy machine (glibc 2.13, 3.2) and
>>> system(SYS_syncfs, ..) works for me.  But the #define is in libc6-dev:
>>
>> But that means your glibc supports it. Then we don't need the syscall at
>> all.
>>
>> To me it's only present in the kernel headers (linux-libc-dev) like
>> this:
>>
>> [pb64: ~]# grep -r syncfs /usr/include
>> /usr/include/asm/unistd_64.h:#define __NR_syncfs      306
>> /usr/include/asm/unistd_64.h:__SYSCALL(__NR_syncfs, sys_syncfs)
>> /usr/include/asm/unistd_32.h:#define __NR_syncfs             344
>> /usr/include/asm-generic/unistd.h:#define __NR_syncfs 267
>> /usr/include/asm-generic/unistd.h:__SYSCALL(__NR_syncfs, sys_syncfs)
>
> Can try wip-syncfs?  It checks for either SYS_syncfs or __NR_syncfs.

Since your latest patch it looks good to me:
starting osd.11 at :/0 osd_data /ceph/osd.11/ /dev/sdb1
2012-11-25 19:37:15.686305 7f155e1db780  0 filestore(/ceph/osd.11/) 
mount FIEMAP ioctl is supported and appears to work
2012-11-25 19:37:15.686313 7f155e1db780  0 filestore(/ceph/osd.11/) 
mount FIEMAP ioctl is disabled via 'filestore fiemap' config option
2012-11-25 19:37:15.686500 7f155e1db780  0 filestore(/ceph/osd.11/) 
mount did NOT detect btrfs
2012-11-25 19:37:15.687850 7f155e1db780  0 filestore(/ceph/osd.11/) 
mount syscall(__NR_syncfs, fd) fully supported
2012-11-25 19:37:15.687899 7f155e1db780  0 filestore(/ceph/osd.11/) 
mount found snaps <>
2012-11-25 19:37:15.689973 7f155e1db780  0 filestore(/ceph/osd.11/) 
mount: enabling WRITEAHEAD journal mode: btrfs not detected
2012-11-25 19:37:15.700405 7f155e1db780  0 journal  kernel version is 3.6.7
2012-11-25 19:37:15.710407 7f155e1db780  0 journal  kernel version is 3.6.7

YES! No more need to build a custom patched glibc.

Stefan

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-11-25 18:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-23  8:19 syncfs via syscall doesn not work Stefan Priebe - Profihost AG
2012-11-24  3:07 ` Sage Weil
2012-11-24  5:34   ` Stefan Priebe - Profihost AG
2012-11-24 17:16     ` Sage Weil
2012-11-24 20:24       ` Stefan Priebe
2012-11-24 23:20         ` Sage Weil
2012-11-25 18:39           ` Stefan Priebe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.