linux-can.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC] Large file support (LFS) for can-utils
@ 2014-02-21 20:21 Oliver Hartkopp
  2014-02-21 20:36 ` Oliver Hartkopp
  2014-02-21 21:37 ` Uwe Kleine-König
  0 siblings, 2 replies; 3+ messages in thread
From: Oliver Hartkopp @ 2014-02-21 20:21 UTC (permalink / raw)
  To: Uwe Kleine-König, linux-can@vger.kernel.org

Hi Uwe,

yesterday I tried to create a really big CAN logfile with

	candump -l any

logging 9 CAN interfaces.

But unfortunately the length of the log file on my 32 bit i686 machine was
limited to 2147483647 == 0x7FFFFFFF == int32 max ...

I did some investigation and there's some kind of large file support (LFS) in
recent gnu libraries that allow 32 bit applications to create large files with
file length values > 0x7FFFFFFF when the filesystem supports it.

When applying the patch below my candump was able to create a large log file.

Alternatively

	candump -L any > filename

did the job too as obviously 'cat' has large file support ;-)

What do you think about LFS?
Would this be the correct way to add the LFS support?

Regards,
Oliver

Not-really-signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>

---

diff --git a/Makefile b/Makefile
index ab99746..a926177 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,7 @@ MAKEFLAGS = -k

 CFLAGS    = -O2 -Wall -Wno-parentheses -Iinclude \
 	    -fno-strict-aliasing \
+	    -D_FILE_OFFSET_BITS=64 \
 	    -DSO_RXQ_OVFL=40 \
 	    -DPF_CAN=29 \
 	    -DAF_CAN=PF_CAN


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

* Re: [PATCH RFC] Large file support (LFS) for can-utils
  2014-02-21 20:21 [PATCH RFC] Large file support (LFS) for can-utils Oliver Hartkopp
@ 2014-02-21 20:36 ` Oliver Hartkopp
  2014-02-21 21:37 ` Uwe Kleine-König
  1 sibling, 0 replies; 3+ messages in thread
From: Oliver Hartkopp @ 2014-02-21 20:36 UTC (permalink / raw)
  To: Uwe Kleine-König, linux-can@vger.kernel.org

Here's some more documentation about LFS:

http://www.gnupg.org/documentation/manuals/gpgme/Largefile-Support-_0028LFS_0029.html

There's also a autoconf macro AC_SYS_LARGEFILE

Regards,
Oliver

On 21.02.2014 21:21, Oliver Hartkopp wrote:
> Hi Uwe,
> 
> yesterday I tried to create a really big CAN logfile with
> 
> 	candump -l any
> 
> logging 9 CAN interfaces.
> 
> But unfortunately the length of the log file on my 32 bit i686 machine was
> limited to 2147483647 == 0x7FFFFFFF == int32 max ...
> 
> I did some investigation and there's some kind of large file support (LFS) in
> recent gnu libraries that allow 32 bit applications to create large files with
> file length values > 0x7FFFFFFF when the filesystem supports it.
> 
> When applying the patch below my candump was able to create a large log file.
> 
> Alternatively
> 
> 	candump -L any > filename
> 
> did the job too as obviously 'cat' has large file support ;-)
> 
> What do you think about LFS?
> Would this be the correct way to add the LFS support?
> 
> Regards,
> Oliver
> 
> Not-really-signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
> 
> ---
> 
> diff --git a/Makefile b/Makefile
> index ab99746..a926177 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -45,6 +45,7 @@ MAKEFLAGS = -k
> 
>  CFLAGS    = -O2 -Wall -Wno-parentheses -Iinclude \
>  	    -fno-strict-aliasing \
> +	    -D_FILE_OFFSET_BITS=64 \
>  	    -DSO_RXQ_OVFL=40 \
>  	    -DPF_CAN=29 \
>  	    -DAF_CAN=PF_CAN
> 

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

* Re: [PATCH RFC] Large file support (LFS) for can-utils
  2014-02-21 20:21 [PATCH RFC] Large file support (LFS) for can-utils Oliver Hartkopp
  2014-02-21 20:36 ` Oliver Hartkopp
@ 2014-02-21 21:37 ` Uwe Kleine-König
  1 sibling, 0 replies; 3+ messages in thread
From: Uwe Kleine-König @ 2014-02-21 21:37 UTC (permalink / raw)
  To: Oliver Hartkopp; +Cc: linux-can@vger.kernel.org

Hello Oliver,

On Fri, Feb 21, 2014 at 09:21:04PM +0100, Oliver Hartkopp wrote:
> yesterday I tried to create a really big CAN logfile with
> 
> 	candump -l any
> 
> logging 9 CAN interfaces.
> 
> But unfortunately the length of the log file on my 32 bit i686 machine was
> limited to 2147483647 == 0x7FFFFFFF == int32 max ...
> 
> I did some investigation and there's some kind of large file support (LFS) in
> recent gnu libraries that allow 32 bit applications to create large files with
> file length values > 0x7FFFFFFF when the filesystem supports it.
> 
> When applying the patch below my candump was able to create a large log file.
> 
> Alternatively
> 
> 	candump -L any > filename
> 
> did the job too as obviously 'cat' has large file support ;-)
<pedantic>
There is no cat involved, > is handled by your shell.
</pedantic>
Doesn't really make a difference though.

> What do you think about LFS?
> Would this be the correct way to add the LFS support?
Maybe:

	CFLAGS += $(getconf LFS_CFLAGS)
	LDFLAGS += $(getconf LFS_LDFLAGS)

but on the other hand autoconf does it differently, they set

	_FILE_OFFSET_BITS=64
 
only if it's needed (assuming I understood that autoconf m4 stuff
correctly). Also LDFLAGS are not handled at all by autoconf.

> diff --git a/Makefile b/Makefile
> index ab99746..a926177 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -45,6 +45,7 @@ MAKEFLAGS = -k
> 
>  CFLAGS    = -O2 -Wall -Wno-parentheses -Iinclude \
>  	    -fno-strict-aliasing \
> +	    -D_FILE_OFFSET_BITS=64 \
>  	    -DSO_RXQ_OVFL=40 \
>  	    -DPF_CAN=29 \
>  	    -DAF_CAN=PF_CAN
> 
-DVAR=VAL should better go into CPPFLAGS.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

end of thread, other threads:[~2014-02-21 21:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-21 20:21 [PATCH RFC] Large file support (LFS) for can-utils Oliver Hartkopp
2014-02-21 20:36 ` Oliver Hartkopp
2014-02-21 21:37 ` Uwe Kleine-König

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).