perf tools: Use O_LARGEFILE to open perf data file
Open perf data file with O_LARGEFILE flag since its size is easily larger that 2G. For example: # rm -rf perf.data # ./perf kmem record sleep 300 [ perf record: Woken up 0 times to write data ] [ perf record: Captured and wrote 3142.147 MB perf.data (~137282513 samples) ] # ll -h perf.data -rw------- 1 root root 3.1G ..... Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> LKML-Reference: <4B68F32A.9040203@cn.fujitsu.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:

committed by
Ingo Molnar

parent
59f411b62c
commit
b8f46c5a34
@@ -1,3 +1,6 @@
|
||||
#define _LARGEFILE64_SOURCE
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
||||
#include <byteswap.h>
|
||||
@@ -12,7 +15,7 @@ static int perf_session__open(struct perf_session *self, bool force)
|
||||
{
|
||||
struct stat input_stat;
|
||||
|
||||
self->fd = open(self->filename, O_RDONLY);
|
||||
self->fd = open(self->filename, O_RDONLY|O_LARGEFILE);
|
||||
if (self->fd < 0) {
|
||||
pr_err("failed to open file: %s", self->filename);
|
||||
if (!strcmp(self->filename, "perf.data"))
|
||||
|
Reference in New Issue
Block a user