Merge "Don't build trace_to_text when building in Chrome"
diff --git a/docs/running_perfetto.md b/docs/running_perfetto.md
index 54ed96b..ba59432 100644
--- a/docs/running_perfetto.md
+++ b/docs/running_perfetto.md
@@ -16,12 +16,11 @@
## Instructions:
+Make sure that Perfetto daemons (`traced` / `traced_probes`) are started.
+They are enabled by default on Pixel and Pixel 2 (walleye, taimen, marlin,
+sailfish). On other devices start them manually by doing:
```
-# TODO(primiano): this is temporary until we fix SELinux policies.
-adb shell su root setenforce 0
-
-adb shell su root start traced
-adb shell su root start traced_probes
+adb shell setprop persist.traced.enable 1
```
If this works you will see something like:
@@ -36,48 +35,61 @@
At which point you can grab a trace by doing:
```
-$ adb shell perfetto --config :test --out /data/local/tmp/trace
+$ adb shell perfetto --config :test --out /data/misc/perfetto-traces/trace
```
-or to save it to [Android's Dropbox][dropbox]:
+Note: If the output file is not under `/data/misc/perfetto-traces`, it might
+fail due to SELinux (shell is allowed to read that directory).
+
+Alternatively, it can be saved to [Android's Dropbox][dropbox]
+(to test the uploader):
```
$ adb shell perfetto --config :test --dropbox perfetto
```
+### Trace config
`--config :test` uses a hard-coded test trace config. It is possible to pass
an arbitrary trace config by doing the following:
```
cat > /tmp/config.txpb <<EOF
# This is a text-encoded protobuf for /protos/perfetto/config/trace_config.proto
-duration_ms: 2000
+duration_ms: 10000
+
buffers {
- size_kb: 1024
- optimize_for: ONE_SHOT_READ
- fill_policy: RING_BUFFER
+ size_kb: 10240
}
+
data_sources {
config {
name: "com.google.perfetto.ftrace"
target_buffer: 0
ftrace_config {
- event_names: "sched_switch"
+ buffer_size_kb: 40 # Kernel ftrace buffer size.
+ ftrace_events: "sched_switch"
+ ftrace_events: "print"
}
}
}
+
+data_sources {
+ config {
+ name: "com.google.perfetto.process_stats"
+ target_buffer: 0
+ }
+}
EOF
protoc=$(pwd)/out/android/gcc_like_host/protoc
$protoc --encode=perfetto.protos.TraceConfig \
-I$(pwd)/external/perfetto/protos \
- $(pwd)/external/perfetto/protos/perfetto/config/trace_config.proto \
+ $(pwd)/external/perfetto/protos/perfetto/config/perfetto_config.proto \
< /tmp/config.txpb \
> /tmp/config.pb
-adb push /tmp/config.pb /data/local/tmp/
-adb shell perfetto -c /data/local/tmp/config.pb -o /data/local/tmp/trace.pb
-adb pull /data/local/tmp/trace.pb /tmp/
+cat /tmp/config.pb | adb shell perfetto -c - -o /data/misc/perfetto-traces/trace.pb
+adb pull /data/misc/perfetto-traces/trace.pb /tmp/
out/android/trace_to_text systrace < /tmp/trace.pb > /tmp/trace.json
# The file can now be viewed in chrome://tracing
diff --git a/include/perfetto/ftrace_reader/BUILD.gn b/include/perfetto/ftrace_reader/BUILD.gn
index fecb7cd..4fba481 100644
--- a/include/perfetto/ftrace_reader/BUILD.gn
+++ b/include/perfetto/ftrace_reader/BUILD.gn
@@ -15,6 +15,7 @@
source_set("ftrace_reader") {
public_deps = [
"../base",
+ "../traced",
]
sources = [
"format_parser.h",
diff --git a/include/perfetto/ftrace_reader/ftrace_controller.h b/include/perfetto/ftrace_reader/ftrace_controller.h
index 90d2bc5..4953b37 100644
--- a/include/perfetto/ftrace_reader/ftrace_controller.h
+++ b/include/perfetto/ftrace_reader/ftrace_controller.h
@@ -19,6 +19,7 @@
#include <unistd.h>
+#include <sys/stat.h>
#include <bitset>
#include <condition_variable>
#include <map>
@@ -34,21 +35,25 @@
#include "perfetto/base/weak_ptr.h"
#include "perfetto/ftrace_reader/ftrace_config.h"
#include "perfetto/protozero/message_handle.h"
+#include "perfetto/traced/data_source_types.h"
namespace perfetto {
+using BlockDeviceID = decltype(stat::st_dev);
+using Inode = decltype(stat::st_ino);
+
struct FtraceMetadata {
FtraceMetadata();
size_t overwrite_count;
- uint32_t last_seen_device_id;
+ BlockDeviceID last_seen_device_id;
// A vector not a set to keep the writer_fast.
- std::vector<std::pair<uint64_t, uint32_t>> inodes;
+ std::vector<std::pair<Inode, BlockDeviceID>> inode_and_device;
std::vector<int32_t> pids;
- void AddDevice(uint32_t);
- void AddInode(uint64_t);
+ void AddDevice(BlockDeviceID);
+ void AddInode(Inode);
void AddPid(int32_t);
void Clear();
};
diff --git a/include/perfetto/traced/BUILD.gn b/include/perfetto/traced/BUILD.gn
index 4d9fe0c..fefc5fa 100644
--- a/include/perfetto/traced/BUILD.gn
+++ b/include/perfetto/traced/BUILD.gn
@@ -14,6 +14,7 @@
source_set("traced") {
sources = [
+ "data_source_types.h",
"traced.h",
]
}
diff --git a/include/perfetto/traced/data_source_types.h b/include/perfetto/traced/data_source_types.h
new file mode 100644
index 0000000..1c4f1b0
--- /dev/null
+++ b/include/perfetto/traced/data_source_types.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef INCLUDE_PERFETTO_TRACED_DATA_SOURCE_TYPES_H_
+#define INCLUDE_PERFETTO_TRACED_DATA_SOURCE_TYPES_H_
+
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+namespace perfetto {
+
+// On ARM, st_ino is not ino_t but unsigned long long.
+using Inode = decltype(stat::st_ino);
+
+// On ARM, st_dev is not dev_t but unsigned long long.
+using BlockDeviceID = decltype(stat::st_dev);
+
+} // namespace perfetto
+
+#endif // INCLUDE_PERFETTO_TRACED_DATA_SOURCE_TYPES_H_
diff --git a/protos/perfetto/trace/ftrace/block_bio_backmerge.proto b/protos/perfetto/trace/ftrace/block_bio_backmerge.proto
index ffc4c26..4ced370 100644
--- a/protos/perfetto/trace/ftrace/block_bio_backmerge.proto
+++ b/protos/perfetto/trace/ftrace/block_bio_backmerge.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockBioBackmergeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
diff --git a/protos/perfetto/trace/ftrace/block_bio_bounce.proto b/protos/perfetto/trace/ftrace/block_bio_bounce.proto
index b8c3c54..052bbca 100644
--- a/protos/perfetto/trace/ftrace/block_bio_bounce.proto
+++ b/protos/perfetto/trace/ftrace/block_bio_bounce.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockBioBounceFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
diff --git a/protos/perfetto/trace/ftrace/block_bio_complete.proto b/protos/perfetto/trace/ftrace/block_bio_complete.proto
index 3e60f48..49d7ad4 100644
--- a/protos/perfetto/trace/ftrace/block_bio_complete.proto
+++ b/protos/perfetto/trace/ftrace/block_bio_complete.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockBioCompleteFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional int32 error = 4;
diff --git a/protos/perfetto/trace/ftrace/block_bio_frontmerge.proto b/protos/perfetto/trace/ftrace/block_bio_frontmerge.proto
index 1f065a8..603b3cc 100644
--- a/protos/perfetto/trace/ftrace/block_bio_frontmerge.proto
+++ b/protos/perfetto/trace/ftrace/block_bio_frontmerge.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockBioFrontmergeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
diff --git a/protos/perfetto/trace/ftrace/block_bio_queue.proto b/protos/perfetto/trace/ftrace/block_bio_queue.proto
index c531f14..aa414d8 100644
--- a/protos/perfetto/trace/ftrace/block_bio_queue.proto
+++ b/protos/perfetto/trace/ftrace/block_bio_queue.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockBioQueueFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
diff --git a/protos/perfetto/trace/ftrace/block_bio_remap.proto b/protos/perfetto/trace/ftrace/block_bio_remap.proto
index 6f82a22..8dcafe8 100644
--- a/protos/perfetto/trace/ftrace/block_bio_remap.proto
+++ b/protos/perfetto/trace/ftrace/block_bio_remap.proto
@@ -7,10 +7,10 @@
package perfetto.protos;
message BlockBioRemapFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
- optional uint32 old_dev = 4;
+ optional uint64 old_dev = 4;
optional uint64 old_sector = 5;
optional string rwbs = 6;
}
diff --git a/protos/perfetto/trace/ftrace/block_dirty_buffer.proto b/protos/perfetto/trace/ftrace/block_dirty_buffer.proto
index f59bfe5..3e736d7 100644
--- a/protos/perfetto/trace/ftrace/block_dirty_buffer.proto
+++ b/protos/perfetto/trace/ftrace/block_dirty_buffer.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockDirtyBufferFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint64 size = 3;
}
diff --git a/protos/perfetto/trace/ftrace/block_getrq.proto b/protos/perfetto/trace/ftrace/block_getrq.proto
index 2b52d52..a757b38 100644
--- a/protos/perfetto/trace/ftrace/block_getrq.proto
+++ b/protos/perfetto/trace/ftrace/block_getrq.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockGetrqFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
diff --git a/protos/perfetto/trace/ftrace/block_rq_abort.proto b/protos/perfetto/trace/ftrace/block_rq_abort.proto
index fdaba4d..a15d1b6 100644
--- a/protos/perfetto/trace/ftrace/block_rq_abort.proto
+++ b/protos/perfetto/trace/ftrace/block_rq_abort.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockRqAbortFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional int32 errors = 4;
diff --git a/protos/perfetto/trace/ftrace/block_rq_complete.proto b/protos/perfetto/trace/ftrace/block_rq_complete.proto
index 98f410b..1d285eb 100644
--- a/protos/perfetto/trace/ftrace/block_rq_complete.proto
+++ b/protos/perfetto/trace/ftrace/block_rq_complete.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockRqCompleteFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional int32 errors = 4;
diff --git a/protos/perfetto/trace/ftrace/block_rq_insert.proto b/protos/perfetto/trace/ftrace/block_rq_insert.proto
index 9cb4c8f..4ae6470 100644
--- a/protos/perfetto/trace/ftrace/block_rq_insert.proto
+++ b/protos/perfetto/trace/ftrace/block_rq_insert.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockRqInsertFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional uint32 bytes = 4;
diff --git a/protos/perfetto/trace/ftrace/block_rq_issue.proto b/protos/perfetto/trace/ftrace/block_rq_issue.proto
index e266c37..aea840f 100644
--- a/protos/perfetto/trace/ftrace/block_rq_issue.proto
+++ b/protos/perfetto/trace/ftrace/block_rq_issue.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockRqIssueFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional uint32 bytes = 4;
diff --git a/protos/perfetto/trace/ftrace/block_rq_remap.proto b/protos/perfetto/trace/ftrace/block_rq_remap.proto
index 5491f09..250e0d7 100644
--- a/protos/perfetto/trace/ftrace/block_rq_remap.proto
+++ b/protos/perfetto/trace/ftrace/block_rq_remap.proto
@@ -7,10 +7,10 @@
package perfetto.protos;
message BlockRqRemapFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
- optional uint32 old_dev = 4;
+ optional uint64 old_dev = 4;
optional uint64 old_sector = 5;
optional uint32 nr_bios = 6;
optional string rwbs = 7;
diff --git a/protos/perfetto/trace/ftrace/block_rq_requeue.proto b/protos/perfetto/trace/ftrace/block_rq_requeue.proto
index 4a1a9b2..a749787 100644
--- a/protos/perfetto/trace/ftrace/block_rq_requeue.proto
+++ b/protos/perfetto/trace/ftrace/block_rq_requeue.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockRqRequeueFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional int32 errors = 4;
diff --git a/protos/perfetto/trace/ftrace/block_sleeprq.proto b/protos/perfetto/trace/ftrace/block_sleeprq.proto
index f00c291..36234f1 100644
--- a/protos/perfetto/trace/ftrace/block_sleeprq.proto
+++ b/protos/perfetto/trace/ftrace/block_sleeprq.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockSleeprqFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
diff --git a/protos/perfetto/trace/ftrace/block_split.proto b/protos/perfetto/trace/ftrace/block_split.proto
index c00b19b..d0ac0dd 100644
--- a/protos/perfetto/trace/ftrace/block_split.proto
+++ b/protos/perfetto/trace/ftrace/block_split.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockSplitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint64 new_sector = 3;
optional string rwbs = 4;
diff --git a/protos/perfetto/trace/ftrace/block_touch_buffer.proto b/protos/perfetto/trace/ftrace/block_touch_buffer.proto
index 63908cf..9a82669 100644
--- a/protos/perfetto/trace/ftrace/block_touch_buffer.proto
+++ b/protos/perfetto/trace/ftrace/block_touch_buffer.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message BlockTouchBufferFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint64 size = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto b/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto
index 633a636..c80946f 100644
--- a/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto
+++ b/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4AllocDaBlocksFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 data_blocks = 3;
optional uint32 meta_blocks = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto b/protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto
index 450ea71..8ac8189 100644
--- a/protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto
+++ b/protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4AllocateBlocksFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 block = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_allocate_inode.proto b/protos/perfetto/trace/ftrace/ext4_allocate_inode.proto
index f158a4e..eeb3fee 100644
--- a/protos/perfetto/trace/ftrace/ext4_allocate_inode.proto
+++ b/protos/perfetto/trace/ftrace/ext4_allocate_inode.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4AllocateInodeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 dir = 3;
optional uint32 mode = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto b/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto
index 9dec91f..2bff30a 100644
--- a/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto
+++ b/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4BeginOrderedTruncateFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 new_size = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_collapse_range.proto b/protos/perfetto/trace/ftrace/ext4_collapse_range.proto
index b8a2068..b3894c9 100644
--- a/protos/perfetto/trace/ftrace/ext4_collapse_range.proto
+++ b/protos/perfetto/trace/ftrace/ext4_collapse_range.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4CollapseRangeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_da_release_space.proto b/protos/perfetto/trace/ftrace/ext4_da_release_space.proto
index 08bde5e..d54c947 100644
--- a/protos/perfetto/trace/ftrace/ext4_da_release_space.proto
+++ b/protos/perfetto/trace/ftrace/ext4_da_release_space.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DaReleaseSpaceFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 i_blocks = 3;
optional int32 freed_blocks = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto b/protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto
index 5815f7d..841fa55 100644
--- a/protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto
+++ b/protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DaReserveSpaceFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 i_blocks = 3;
optional int32 reserved_data_blocks = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto b/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto
index c1c2f15..c13354e 100644
--- a/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto
+++ b/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DaUpdateReserveSpaceFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 i_blocks = 3;
optional int32 used_blocks = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_da_write_begin.proto b/protos/perfetto/trace/ftrace/ext4_da_write_begin.proto
index 25237cb..3b2e1bd 100644
--- a/protos/perfetto/trace/ftrace/ext4_da_write_begin.proto
+++ b/protos/perfetto/trace/ftrace/ext4_da_write_begin.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DaWriteBeginFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_da_write_end.proto b/protos/perfetto/trace/ftrace/ext4_da_write_end.proto
index 6972d17..70199f8 100644
--- a/protos/perfetto/trace/ftrace/ext4_da_write_end.proto
+++ b/protos/perfetto/trace/ftrace/ext4_da_write_end.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DaWriteEndFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_da_write_pages.proto b/protos/perfetto/trace/ftrace/ext4_da_write_pages.proto
index 3c7b96e..1d3c076 100644
--- a/protos/perfetto/trace/ftrace/ext4_da_write_pages.proto
+++ b/protos/perfetto/trace/ftrace/ext4_da_write_pages.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DaWritePagesFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 first_page = 3;
optional int64 nr_to_write = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto b/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto
index 7a13f9d..3756157 100644
--- a/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto
+++ b/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DaWritePagesExtentFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 lblk = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto b/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto
index 59688c9..21bbcaf 100644
--- a/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DirectIOEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint64 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto b/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto
index b58f6ca..9b77ab7 100644
--- a/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DirectIOExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint64 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_discard_blocks.proto b/protos/perfetto/trace/ftrace/ext4_discard_blocks.proto
index 2b3e777..6e14a50 100644
--- a/protos/perfetto/trace/ftrace/ext4_discard_blocks.proto
+++ b/protos/perfetto/trace/ftrace/ext4_discard_blocks.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DiscardBlocksFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 blk = 2;
optional uint64 count = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto b/protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto
index 4152887..8cb43c2 100644
--- a/protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto
+++ b/protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto
@@ -7,6 +7,6 @@
package perfetto.protos;
message Ext4DiscardPreallocationsFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_drop_inode.proto b/protos/perfetto/trace/ftrace/ext4_drop_inode.proto
index f9785b7..c5744df 100644
--- a/protos/perfetto/trace/ftrace/ext4_drop_inode.proto
+++ b/protos/perfetto/trace/ftrace/ext4_drop_inode.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4DropInodeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 drop = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto b/protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto
index 95408f6..502e3a8 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsCacheExtentFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto b/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto
index fda9034..07d1fc0 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsFindDelayedExtentRangeEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto b/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto
index 21630d3..fd50288 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsFindDelayedExtentRangeExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto b/protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto
index c29641c..aca9db7 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsInsertExtentFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto b/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto
index 2f82152..7f52999 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsLookupExtentEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto b/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto
index df475fb..e7ca8e4 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsLookupExtentExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto b/protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto
index 7e67019..f853608 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsRemoveExtentFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 lblk = 3;
optional int64 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_es_shrink.proto b/protos/perfetto/trace/ftrace/ext4_es_shrink.proto
index 3ef83a7..41f449c 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_shrink.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_shrink.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsShrinkFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional int32 nr_shrunk = 2;
optional uint64 scan_time = 3;
optional int32 nr_skipped = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto b/protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto
index aac2143..c4daf6e 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsShrinkCountFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional int32 nr_to_scan = 2;
optional int32 cache_cnt = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto b/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto
index a98ab0b..d4435e0 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsShrinkScanEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional int32 nr_to_scan = 2;
optional int32 cache_cnt = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto b/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto
index a959b40..bf31648 100644
--- a/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EsShrinkScanExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional int32 nr_shrunk = 2;
optional int32 cache_cnt = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_evict_inode.proto b/protos/perfetto/trace/ftrace/ext4_evict_inode.proto
index 763a916..ae0e42d 100644
--- a/protos/perfetto/trace/ftrace/ext4_evict_inode.proto
+++ b/protos/perfetto/trace/ftrace/ext4_evict_inode.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4EvictInodeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 nlink = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto b/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto
index 18d000a..5d16860 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtConvertToInitializedEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 m_lblk = 3;
optional uint32 m_len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto b/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto
index f25d01f..54c2418 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtConvertToInitializedFastpathFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 m_lblk = 3;
optional uint32 m_len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto b/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto
index 6a84188..b2f9eb5 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtHandleUnwrittenExtentsFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 flags = 3;
optional uint32 lblk = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto b/protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto
index ee61bc6..47c2bf9 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtInCacheFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional int32 ret = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto b/protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto
index 070c6d6..45ecb56 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtLoadExtentFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pblk = 3;
optional uint32 lblk = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto b/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto
index f561978..0d8a15f 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtMapBlocksEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto b/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto
index a0c6a50..4cdc00d 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtMapBlocksExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 flags = 3;
optional uint64 pblk = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto b/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto
index 58ad6b0..eff3942 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtPutInCacheFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto b/protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto
index 93d9bf3..d6564e9 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtRemoveSpaceFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 start = 3;
optional uint32 end = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto b/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto
index da8566f..f8bdf70 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtRemoveSpaceDoneFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 start = 3;
optional uint32 end = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto b/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto
index ac81910..5c46720 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtRmIdxFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pblk = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto b/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto
index f7b8e69..47a6d2f 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtRmLeafFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 partial = 3;
optional uint32 start = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto b/protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto
index 37a2dab..cc5774c 100644
--- a/protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ExtShowExtentFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pblk = 3;
optional uint32 lblk = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto b/protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto
index f6f783a..162779f 100644
--- a/protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4FallocateEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto b/protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto
index a44cbe9..a0dcf57 100644
--- a/protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4FallocateExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 blocks = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto b/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto
index 6a0d2b4..b8816b0 100644
--- a/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto
+++ b/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4FindDelallocRangeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 from = 3;
optional uint32 to = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_forget.proto b/protos/perfetto/trace/ftrace/ext4_forget.proto
index 8a8acc8..5d34bc1 100644
--- a/protos/perfetto/trace/ftrace/ext4_forget.proto
+++ b/protos/perfetto/trace/ftrace/ext4_forget.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ForgetFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 block = 3;
optional int32 is_metadata = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_free_blocks.proto b/protos/perfetto/trace/ftrace/ext4_free_blocks.proto
index 9e652c4..338c4cf 100644
--- a/protos/perfetto/trace/ftrace/ext4_free_blocks.proto
+++ b/protos/perfetto/trace/ftrace/ext4_free_blocks.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4FreeBlocksFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 block = 3;
optional uint64 count = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_free_inode.proto b/protos/perfetto/trace/ftrace/ext4_free_inode.proto
index c1d240f..d049f2d 100644
--- a/protos/perfetto/trace/ftrace/ext4_free_inode.proto
+++ b/protos/perfetto/trace/ftrace/ext4_free_inode.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4FreeInodeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 uid = 3;
optional uint32 gid = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto b/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto
index b500d1f..afa4438 100644
--- a/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4GetImpliedClusterAllocExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint32 flags = 2;
optional uint32 lblk = 3;
optional uint64 pblk = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto b/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto
index cb9cdfc..d44e2c1 100644
--- a/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto
+++ b/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4GetReservedClusterAllocFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto b/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto
index cfa6304..f4c1a94 100644
--- a/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4IndMapBlocksEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto b/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto
index bd368eb..f942d3d 100644
--- a/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4IndMapBlocksExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 flags = 3;
optional uint64 pblk = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_insert_range.proto b/protos/perfetto/trace/ftrace/ext4_insert_range.proto
index 4010cf0..bfb5ab2 100644
--- a/protos/perfetto/trace/ftrace/ext4_insert_range.proto
+++ b/protos/perfetto/trace/ftrace/ext4_insert_range.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4InsertRangeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_invalidatepage.proto b/protos/perfetto/trace/ftrace/ext4_invalidatepage.proto
index 951ff05..ce49c38 100644
--- a/protos/perfetto/trace/ftrace/ext4_invalidatepage.proto
+++ b/protos/perfetto/trace/ftrace/ext4_invalidatepage.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4InvalidatepageFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
optional uint32 offset = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_journal_start.proto b/protos/perfetto/trace/ftrace/ext4_journal_start.proto
index f361673..896ca59 100644
--- a/protos/perfetto/trace/ftrace/ext4_journal_start.proto
+++ b/protos/perfetto/trace/ftrace/ext4_journal_start.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4JournalStartFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ip = 2;
optional int32 blocks = 3;
optional int32 rsv_blocks = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto b/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto
index 61d3cc7..58f4340 100644
--- a/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto
+++ b/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4JournalStartReservedFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ip = 2;
optional int32 blocks = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto b/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto
index 4503ec2..a5c544f 100644
--- a/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto
+++ b/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4JournalledInvalidatepageFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
optional uint32 offset = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto b/protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto
index 8cebed4..f137b6d 100644
--- a/protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto
+++ b/protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4JournalledWriteEndFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_load_inode.proto b/protos/perfetto/trace/ftrace/ext4_load_inode.proto
index 3bfa913..21361ad 100644
--- a/protos/perfetto/trace/ftrace/ext4_load_inode.proto
+++ b/protos/perfetto/trace/ftrace/ext4_load_inode.proto
@@ -7,6 +7,6 @@
package perfetto.protos;
message Ext4LoadInodeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto b/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto
index 41082d8..d40b933 100644
--- a/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto
+++ b/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto
@@ -7,6 +7,6 @@
package perfetto.protos;
message Ext4LoadInodeBitmapFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint32 group = 2;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto b/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto
index e291d9f..c228b21 100644
--- a/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4MarkInodeDirtyFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 ip = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto b/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto
index 471b417..fc2216f 100644
--- a/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto
@@ -7,6 +7,6 @@
package perfetto.protos;
message Ext4MbBitmapLoadFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint32 group = 2;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto b/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto
index 4f4286b..11b876b 100644
--- a/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto
@@ -7,6 +7,6 @@
package perfetto.protos;
message Ext4MbBuddyBitmapLoadFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint32 group = 2;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto b/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto
index 1ff579a..35b6553 100644
--- a/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto
@@ -7,6 +7,6 @@
package perfetto.protos;
message Ext4MbDiscardPreallocationsFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional int32 needed = 2;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto b/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto
index fec3b6b..38c7c61 100644
--- a/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4MbNewGroupPaFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pa_pstart = 3;
optional uint64 pa_lstart = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto b/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto
index 36dae58..c4b1e60 100644
--- a/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4MbNewInodePaFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pa_pstart = 3;
optional uint64 pa_lstart = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto b/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto
index d720fdf..f12af7e 100644
--- a/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4MbReleaseGroupPaFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 pa_pstart = 2;
optional uint32 pa_len = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto b/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto
index 7601e49..f4e275c 100644
--- a/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4MbReleaseInodePaFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 block = 3;
optional uint32 count = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto b/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto
index 6218492..863fd30 100644
--- a/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4MballocAllocFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 orig_logical = 3;
optional int32 orig_start = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto b/protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto
index e299416..97d6ef6 100644
--- a/protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4MballocDiscardFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 result_start = 3;
optional uint32 result_group = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_mballoc_free.proto b/protos/perfetto/trace/ftrace/ext4_mballoc_free.proto
index 4ce2184..51176b9 100644
--- a/protos/perfetto/trace/ftrace/ext4_mballoc_free.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mballoc_free.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4MballocFreeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 result_start = 3;
optional uint32 result_group = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto b/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto
index 310b940..efd0dd3 100644
--- a/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto
+++ b/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4MballocPreallocFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 orig_logical = 3;
optional int32 orig_start = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto b/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto
index ec50a8d..54fc8eb 100644
--- a/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto
+++ b/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4OtherInodeUpdateTimeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 orig_ino = 3;
optional uint32 uid = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_punch_hole.proto b/protos/perfetto/trace/ftrace/ext4_punch_hole.proto
index 9fe0b19..cf14f24 100644
--- a/protos/perfetto/trace/ftrace/ext4_punch_hole.proto
+++ b/protos/perfetto/trace/ftrace/ext4_punch_hole.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4PunchHoleFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto b/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto
index f31b196..047b90a 100644
--- a/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto
+++ b/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto
@@ -7,6 +7,6 @@
package perfetto.protos;
message Ext4ReadBlockBitmapLoadFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint32 group = 2;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_readpage.proto b/protos/perfetto/trace/ftrace/ext4_readpage.proto
index 2a80964..5498ad2 100644
--- a/protos/perfetto/trace/ftrace/ext4_readpage.proto
+++ b/protos/perfetto/trace/ftrace/ext4_readpage.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ReadpageFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_releasepage.proto b/protos/perfetto/trace/ftrace/ext4_releasepage.proto
index 63039b9..a3db3a4 100644
--- a/protos/perfetto/trace/ftrace/ext4_releasepage.proto
+++ b/protos/perfetto/trace/ftrace/ext4_releasepage.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ReleasepageFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_remove_blocks.proto b/protos/perfetto/trace/ftrace/ext4_remove_blocks.proto
index 3eef63f..cce1830 100644
--- a/protos/perfetto/trace/ftrace/ext4_remove_blocks.proto
+++ b/protos/perfetto/trace/ftrace/ext4_remove_blocks.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4RemoveBlocksFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 from = 3;
optional uint32 to = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_request_blocks.proto b/protos/perfetto/trace/ftrace/ext4_request_blocks.proto
index 19044d8..1df9c3c 100644
--- a/protos/perfetto/trace/ftrace/ext4_request_blocks.proto
+++ b/protos/perfetto/trace/ftrace/ext4_request_blocks.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4RequestBlocksFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 len = 3;
optional uint32 logical = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_request_inode.proto b/protos/perfetto/trace/ftrace/ext4_request_inode.proto
index 5bf9b35..b3fd925 100644
--- a/protos/perfetto/trace/ftrace/ext4_request_inode.proto
+++ b/protos/perfetto/trace/ftrace/ext4_request_inode.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4RequestInodeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 dir = 2;
optional uint32 mode = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_sync_file_enter.proto b/protos/perfetto/trace/ftrace/ext4_sync_file_enter.proto
index 6a26f79..1975531 100644
--- a/protos/perfetto/trace/ftrace/ext4_sync_file_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_sync_file_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4SyncFileEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 parent = 3;
optional int32 datasync = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_sync_file_exit.proto b/protos/perfetto/trace/ftrace/ext4_sync_file_exit.proto
index 71c49c6..dcc4c25 100644
--- a/protos/perfetto/trace/ftrace/ext4_sync_file_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_sync_file_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4SyncFileExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_sync_fs.proto b/protos/perfetto/trace/ftrace/ext4_sync_fs.proto
index be5ce76..fcec0cf 100644
--- a/protos/perfetto/trace/ftrace/ext4_sync_fs.proto
+++ b/protos/perfetto/trace/ftrace/ext4_sync_fs.proto
@@ -7,6 +7,6 @@
package perfetto.protos;
message Ext4SyncFsFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional int32 wait = 2;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_truncate_enter.proto b/protos/perfetto/trace/ftrace/ext4_truncate_enter.proto
index 305aeac..cb2acce 100644
--- a/protos/perfetto/trace/ftrace/ext4_truncate_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_truncate_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4TruncateEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 blocks = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_truncate_exit.proto b/protos/perfetto/trace/ftrace/ext4_truncate_exit.proto
index 37c7ede..ed55ef4 100644
--- a/protos/perfetto/trace/ftrace/ext4_truncate_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_truncate_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4TruncateExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 blocks = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_unlink_enter.proto b/protos/perfetto/trace/ftrace/ext4_unlink_enter.proto
index 408db09..615df11 100644
--- a/protos/perfetto/trace/ftrace/ext4_unlink_enter.proto
+++ b/protos/perfetto/trace/ftrace/ext4_unlink_enter.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4UnlinkEnterFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 parent = 3;
optional int64 size = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_unlink_exit.proto b/protos/perfetto/trace/ftrace/ext4_unlink_exit.proto
index e9538aa..dd80e23 100644
--- a/protos/perfetto/trace/ftrace/ext4_unlink_exit.proto
+++ b/protos/perfetto/trace/ftrace/ext4_unlink_exit.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4UnlinkExitFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_write_begin.proto b/protos/perfetto/trace/ftrace/ext4_write_begin.proto
index 1a63dd4..3473060 100644
--- a/protos/perfetto/trace/ftrace/ext4_write_begin.proto
+++ b/protos/perfetto/trace/ftrace/ext4_write_begin.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4WriteBeginFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_write_end.proto b/protos/perfetto/trace/ftrace/ext4_write_end.proto
index b34805f..f8c8388 100644
--- a/protos/perfetto/trace/ftrace/ext4_write_end.proto
+++ b/protos/perfetto/trace/ftrace/ext4_write_end.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4WriteEndFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_writepage.proto b/protos/perfetto/trace/ftrace/ext4_writepage.proto
index ae79ba5..6c4b854 100644
--- a/protos/perfetto/trace/ftrace/ext4_writepage.proto
+++ b/protos/perfetto/trace/ftrace/ext4_writepage.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4WritepageFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
}
diff --git a/protos/perfetto/trace/ftrace/ext4_writepages.proto b/protos/perfetto/trace/ftrace/ext4_writepages.proto
index 870ed70..0b76cb3 100644
--- a/protos/perfetto/trace/ftrace/ext4_writepages.proto
+++ b/protos/perfetto/trace/ftrace/ext4_writepages.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4WritepagesFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 nr_to_write = 3;
optional int64 pages_skipped = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_writepages_result.proto b/protos/perfetto/trace/ftrace/ext4_writepages_result.proto
index dfefa79..f5d8173 100644
--- a/protos/perfetto/trace/ftrace/ext4_writepages_result.proto
+++ b/protos/perfetto/trace/ftrace/ext4_writepages_result.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4WritepagesResultFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
optional int32 pages_written = 4;
diff --git a/protos/perfetto/trace/ftrace/ext4_zero_range.proto b/protos/perfetto/trace/ftrace/ext4_zero_range.proto
index 904b7cb..e064c62 100644
--- a/protos/perfetto/trace/ftrace/ext4_zero_range.proto
+++ b/protos/perfetto/trace/ftrace/ext4_zero_range.proto
@@ -7,7 +7,7 @@
package perfetto.protos;
message Ext4ZeroRangeFtraceEvent {
- optional uint32 dev = 1;
+ optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
diff --git a/protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.proto b/protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.proto
index 3bab542..3399623 100644
--- a/protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.proto
+++ b/protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.proto
@@ -10,5 +10,5 @@
optional uint64 pfn = 1;
optional uint64 i_ino = 2;
optional uint64 index = 3;
- optional uint32 s_dev = 4;
+ optional uint64 s_dev = 4;
}
diff --git a/protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.proto b/protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.proto
index 24f798b..9a49483 100644
--- a/protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.proto
+++ b/protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.proto
@@ -10,5 +10,5 @@
optional uint64 pfn = 1;
optional uint64 i_ino = 2;
optional uint64 index = 3;
- optional uint32 s_dev = 4;
+ optional uint64 s_dev = 4;
}
diff --git a/protos/perfetto/trace/ps/process_tree.proto b/protos/perfetto/trace/ps/process_tree.proto
index 406209c..c1538fe 100644
--- a/protos/perfetto/trace/ps/process_tree.proto
+++ b/protos/perfetto/trace/ps/process_tree.proto
@@ -28,7 +28,7 @@
optional string name = 2;
}
- // Representation of a processs.
+ // Representation of a process.
message Process {
// The UNIX process ID, aka thread group ID (as per getpid()).
optional int32 pid = 1;
diff --git a/src/ftrace_reader/cpu_reader.cc b/src/ftrace_reader/cpu_reader.cc
index 6eadb3e..0a270cf 100644
--- a/src/ftrace_reader/cpu_reader.cc
+++ b/src/ftrace_reader/cpu_reader.cc
@@ -488,8 +488,11 @@
case kPid32ToInt32:
ReadPid(field_start, field_id, message, metadata);
return true;
- case kDevId32ToUint32:
- ReadDevId(field_start, field_id, message, metadata);
+ case kDevId32ToUint64:
+ ReadDevId<uint32_t>(field_start, field_id, message, metadata);
+ return true;
+ case kDevId64ToUint64:
+ ReadDevId<uint64_t>(field_start, field_id, message, metadata);
return true;
}
// Not reached, for gcc.
diff --git a/src/ftrace_reader/cpu_reader.h b/src/ftrace_reader/cpu_reader.h
index 0a4fe87..53cb89d 100644
--- a/src/ftrace_reader/cpu_reader.h
+++ b/src/ftrace_reader/cpu_reader.h
@@ -20,6 +20,7 @@
#include <stdint.h>
#include <string.h>
+#include <sys/sysmacros.h>
#include <array>
#include <memory>
#include <set>
@@ -30,6 +31,7 @@
#include "perfetto/base/thread_checker.h"
#include "perfetto/ftrace_reader/ftrace_controller.h"
#include "perfetto/protozero/message.h"
+#include "perfetto/traced/data_source_types.h"
#include "src/ftrace_reader/proto_translation_table.h"
namespace perfetto {
@@ -115,15 +117,19 @@
protozero::Message* out,
FtraceMetadata* metadata) {
T t = ReadIntoVarInt<T>(start, field_id, out);
- metadata->AddInode(t);
+ metadata->AddInode(static_cast<Inode>(t));
}
+ template <typename T>
static void ReadDevId(const uint8_t* start,
size_t field_id,
protozero::Message* out,
FtraceMetadata* metadata) {
- uint32_t dev_id = ReadIntoVarInt<uint32_t>(start, field_id, out);
- PERFETTO_DCHECK(dev_id != 0);
+ T t;
+ memcpy(&t, reinterpret_cast<const void*>(start), sizeof(T));
+ BlockDeviceID dev_id = TranslateBlockDeviceIDToUserspace<T>(t);
+ out->AppendVarInt<BlockDeviceID>(field_id, dev_id);
+ PERFETTO_DCHECK(t != 0);
metadata->AddDevice(dev_id);
}
@@ -135,6 +141,22 @@
metadata->AddPid(pid);
}
+ // Internally the kernel stores device ids in a different layout to that
+ // exposed to userspace via stat etc. There's no userspace function to convert
+ // between the formats so we have to do it ourselves.
+ template <typename T>
+ static BlockDeviceID TranslateBlockDeviceIDToUserspace(T kernel_dev) {
+ // Provided search index s_dev from
+ // https://github.com/torvalds/linux/blob/v4.12/include/linux/fs.h#L404
+ // Convert to user space id using
+ // https://github.com/torvalds/linux/blob/v4.12/include/linux/kdev_t.h#L10
+ // TODO(azappone): see if this is the same on all platforms
+ unsigned int maj = static_cast<unsigned int>((kernel_dev) >> 20);
+ unsigned int min =
+ static_cast<unsigned int>((kernel_dev) & ((1U << 20) - 1));
+ return static_cast<BlockDeviceID>(makedev(maj, min));
+ }
+
// Iterate through every file in the current directory and check if the inode
// number of each file matches any of the inode numbers saved in events.
// Returns map of inode number to filename for every inode number that is
diff --git a/src/ftrace_reader/cpu_reader_unittest.cc b/src/ftrace_reader/cpu_reader_unittest.cc
index 300c97f..8ed33ba 100644
--- a/src/ftrace_reader/cpu_reader_unittest.cc
+++ b/src/ftrace_reader/cpu_reader_unittest.cc
@@ -713,14 +713,14 @@
event->proto_field_id = 42;
event->ftrace_event_id = ftrace_event_id;
{
- // dev32 -> uint32
+ // dev32 -> uint64
event->fields.emplace_back(Field{});
Field* field = &event->fields.back();
field->ftrace_offset = 8;
field->ftrace_size = 4;
field->ftrace_type = kFtraceDevId32;
field->proto_field_id = 1;
- field->proto_field_type = kProtoUint32;
+ field->proto_field_type = kProtoUint64;
SetTranslationStrategy(field->ftrace_type, field->proto_field_type,
&field->strategy);
}
@@ -761,11 +761,23 @@
&field->strategy);
}
{
- // ino_t (64bit) -> uint64
+ // dev64 -> uint64
event->fields.emplace_back(Field{});
Field* field = &event->fields.back();
field->ftrace_offset = 24;
field->ftrace_size = 8;
+ field->ftrace_type = kFtraceDevId64;
+ field->proto_field_id = 6;
+ field->proto_field_type = kProtoUint64;
+ SetTranslationStrategy(field->ftrace_type, field->proto_field_type,
+ &field->strategy);
+ }
+ {
+ // ino_t (64bit) -> uint64
+ event->fields.emplace_back(Field{});
+ Field* field = &event->fields.back();
+ field->ftrace_offset = 32;
+ field->ftrace_size = 8;
field->ftrace_type = kFtraceInode64;
field->proto_field_id = 4;
field->proto_field_type = kProtoUint64;
@@ -776,7 +788,7 @@
// char[16] -> string
event->fields.emplace_back(Field{});
Field* field = &event->fields.back();
- field->ftrace_offset = 32;
+ field->ftrace_offset = 40;
field->ftrace_size = 16;
field->ftrace_type = kFtraceFixedCString;
field->proto_field_id = 500;
@@ -788,7 +800,7 @@
// char -> string
event->fields.emplace_back(Field{});
Field* field = &event->fields.back();
- field->ftrace_offset = 48;
+ field->ftrace_offset = 56;
field->ftrace_size = 0;
field->ftrace_type = kFtraceCString;
field->proto_field_id = 501;
@@ -802,13 +814,26 @@
FakeEventProvider provider(base::kPageSize);
BinaryWriter writer;
+
+ // Must use the bit masks to translate between kernel and userspace device ids
+ // to generate the below examples
+ const uint32_t example_32_bit_kdev = 271581216;
+ const uint64_t example_32_bit_userspace_dev =
+ CpuReader::TranslateBlockDeviceIDToUserspace<uint32_t>(
+ example_32_bit_kdev);
+ const uint64_t example_64_bit_kdev = 4442450946;
+ const uint64_t example_64_bit_userspace_dev =
+ CpuReader::TranslateBlockDeviceIDToUserspace<uint64_t>(
+ example_64_bit_kdev);
+
writer.Write<int32_t>(1001); // Common field.
writer.Write<int32_t>(9999); // A gap we shouldn't read.
- writer.Write<int32_t>(1002); // Dev id
+ writer.Write<int32_t>(example_32_bit_kdev); // Dev id
writer.Write<int32_t>(97); // Pid
writer.Write<int32_t>(1003); // Uint32 field
- writer.Write<int32_t>(98); // Inode 1
- writer.Write<int64_t>(99); // Inode 2
+ writer.Write<int32_t>(98); // Inode 32
+ writer.Write<int64_t>(example_64_bit_kdev); // Dev id 64
+ writer.Write<int64_t>(99u); // Inode 64
writer.WriteFixedString(16, "Hello");
writer.WriteFixedString(300, "Goodbye");
@@ -824,17 +849,114 @@
ASSERT_TRUE(event);
EXPECT_EQ(event->common_field(), 1001ul);
EXPECT_EQ(event->event_case(), FakeFtraceEvent::kAllFields);
- EXPECT_EQ(event->all_fields().field_dev(), 1002ul);
+ EXPECT_EQ(event->all_fields().field_dev_32(), example_32_bit_userspace_dev);
EXPECT_EQ(event->all_fields().field_pid(), 97);
EXPECT_EQ(event->all_fields().field_uint32(), 1003u);
EXPECT_EQ(event->all_fields().field_inode_32(), 98u);
+ EXPECT_EQ(event->all_fields().field_dev_64(), example_64_bit_userspace_dev);
EXPECT_EQ(event->all_fields().field_inode_64(), 99u);
EXPECT_EQ(event->all_fields().field_char_16(), "Hello");
EXPECT_EQ(event->all_fields().field_char(), "Goodbye");
EXPECT_THAT(metadata.pids, Contains(97));
- EXPECT_EQ(metadata.inodes.size(), 2U);
- EXPECT_THAT(metadata.inodes, Contains(Pair(98u, 1002)));
- EXPECT_THAT(metadata.inodes, Contains(Pair(99u, 1002ul)));
+ EXPECT_THAT(metadata.last_seen_device_id, example_64_bit_userspace_dev);
+ EXPECT_EQ(metadata.inode_and_device.size(), 2U);
+ EXPECT_THAT(metadata.inode_and_device,
+ Contains(Pair(98u, example_32_bit_userspace_dev)));
+ EXPECT_THAT(metadata.inode_and_device,
+ Contains(Pair(99u, example_64_bit_userspace_dev)));
+}
+
+TEST(CpuReaderTest, TranslateBlockDeviceIDToUserspace) {
+ using FakeEventProvider =
+ ProtoProvider<pbzero::FakeFtraceEvent, FakeFtraceEvent>;
+
+ uint16_t ftrace_event_id = 102;
+
+ std::vector<Field> common_fields;
+ {
+ common_fields.emplace_back(Field{});
+ Field* field = &common_fields.back();
+ field->ftrace_offset = 0;
+ field->ftrace_size = 4;
+ field->ftrace_type = kFtraceUint32;
+ field->proto_field_id = 1;
+ field->proto_field_type = kProtoUint32;
+ SetTranslationStrategy(field->ftrace_type, field->proto_field_type,
+ &field->strategy);
+ }
+
+ std::vector<Event> events;
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "";
+ event->group = "";
+ event->proto_field_id = 42;
+ event->ftrace_event_id = ftrace_event_id;
+ {
+ // dev32 -> uint64
+ event->fields.emplace_back(Field{});
+ Field* field = &event->fields.back();
+ field->ftrace_offset = 8;
+ field->ftrace_size = 4;
+ field->ftrace_type = kFtraceDevId32;
+ field->proto_field_id = 1;
+ field->proto_field_type = kProtoUint64;
+ SetTranslationStrategy(field->ftrace_type, field->proto_field_type,
+ &field->strategy);
+ }
+ {
+ // dev64 -> uint64
+ event->fields.emplace_back(Field{});
+ Field* field = &event->fields.back();
+ field->ftrace_offset = 12;
+ field->ftrace_size = 8;
+ field->ftrace_type = kFtraceDevId64;
+ field->proto_field_id = 6;
+ field->proto_field_type = kProtoUint64;
+ SetTranslationStrategy(field->ftrace_type, field->proto_field_type,
+ &field->strategy);
+ }
+ }
+ ProtoTranslationTable table(events, std::move(common_fields));
+
+ FakeEventProvider provider(base::kPageSize);
+
+ BinaryWriter writer;
+
+ const uint32_t example_32_bit_kdev = 271581216;
+ const uint64_t example_32_bit_userspace_dev = 66336;
+ // Test downcasting
+ const uint64_t example_64_bit_kdev = 4442450946;
+ const uint64_t example_64_bit_userspace_dev = 17594983681026;
+
+ writer.Write<int32_t>(1001); // Common field.
+ writer.Write<int32_t>(9999); // A gap we shouldn't read.
+ writer.Write<int32_t>(example_32_bit_kdev); // Dev id 32
+ writer.Write<int64_t>(example_64_bit_kdev); // Dev id 64
+
+ auto input = writer.GetCopy();
+ auto length = writer.written();
+ FtraceMetadata metadata{};
+
+ ASSERT_TRUE(CpuReader::ParseEvent(ftrace_event_id, input.get(),
+ input.get() + length, &table,
+ provider.writer(), &metadata));
+
+ auto event = provider.ParseProto();
+ ASSERT_TRUE(event);
+ EXPECT_EQ(event->common_field(), 1001ul);
+ EXPECT_EQ(event->event_case(), FakeFtraceEvent::kAllFields);
+ EXPECT_EQ(event->all_fields().field_dev_32(), example_32_bit_userspace_dev);
+ EXPECT_EQ(event->all_fields().field_dev_64(), example_64_bit_userspace_dev);
+ EXPECT_THAT(metadata.last_seen_device_id, example_64_bit_userspace_dev);
+
+ EXPECT_THAT(CpuReader::TranslateBlockDeviceIDToUserspace<uint32_t>(
+ example_32_bit_kdev),
+ example_32_bit_userspace_dev);
+ EXPECT_THAT(CpuReader::TranslateBlockDeviceIDToUserspace<uint64_t>(
+ example_64_bit_kdev),
+ example_64_bit_userspace_dev);
}
// clang-format off
diff --git a/src/ftrace_reader/event_info.cc b/src/ftrace_reader/event_info.cc
index 586e8fe..197c7bf 100644
--- a/src/ftrace_reader/event_info.cc
+++ b/src/ftrace_reader/event_info.cc
@@ -79,7 +79,7 @@
event->name = "block_bio_backmerge";
event->group = "block";
event->proto_field_id = 115;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("rwbs", 4, kProtoString));
@@ -92,7 +92,7 @@
event->name = "block_bio_bounce";
event->group = "block";
event->proto_field_id = 116;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("rwbs", 4, kProtoString));
@@ -105,7 +105,7 @@
event->name = "block_bio_complete";
event->group = "block";
event->proto_field_id = 117;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("error", 4, kProtoInt32));
@@ -118,7 +118,7 @@
event->name = "block_bio_frontmerge";
event->group = "block";
event->proto_field_id = 118;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("rwbs", 4, kProtoString));
@@ -131,7 +131,7 @@
event->name = "block_bio_queue";
event->group = "block";
event->proto_field_id = 119;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("rwbs", 4, kProtoString));
@@ -144,10 +144,10 @@
event->name = "block_bio_remap";
event->group = "block";
event->proto_field_id = 120;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
- event->fields.push_back(MakeField("old_dev", 4, kProtoUint32));
+ event->fields.push_back(MakeField("old_dev", 4, kProtoUint64));
event->fields.push_back(MakeField("old_sector", 5, kProtoUint64));
event->fields.push_back(MakeField("rwbs", 6, kProtoString));
}
@@ -158,7 +158,7 @@
event->name = "block_dirty_buffer";
event->group = "block";
event->proto_field_id = 121;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("size", 3, kProtoUint64));
}
@@ -169,7 +169,7 @@
event->name = "block_getrq";
event->group = "block";
event->proto_field_id = 122;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("rwbs", 4, kProtoString));
@@ -191,7 +191,7 @@
event->name = "block_rq_abort";
event->group = "block";
event->proto_field_id = 124;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("errors", 4, kProtoInt32));
@@ -205,7 +205,7 @@
event->name = "block_rq_complete";
event->group = "block";
event->proto_field_id = 125;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("errors", 4, kProtoInt32));
@@ -219,7 +219,7 @@
event->name = "block_rq_insert";
event->group = "block";
event->proto_field_id = 126;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("bytes", 4, kProtoUint32));
@@ -234,7 +234,7 @@
event->name = "block_rq_issue";
event->group = "block";
event->proto_field_id = 45;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("bytes", 4, kProtoUint32));
@@ -249,10 +249,10 @@
event->name = "block_rq_remap";
event->group = "block";
event->proto_field_id = 128;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
- event->fields.push_back(MakeField("old_dev", 4, kProtoUint32));
+ event->fields.push_back(MakeField("old_dev", 4, kProtoUint64));
event->fields.push_back(MakeField("old_sector", 5, kProtoUint64));
event->fields.push_back(MakeField("nr_bios", 6, kProtoUint32));
event->fields.push_back(MakeField("rwbs", 7, kProtoString));
@@ -264,7 +264,7 @@
event->name = "block_rq_requeue";
event->group = "block";
event->proto_field_id = 129;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("errors", 4, kProtoInt32));
@@ -278,7 +278,7 @@
event->name = "block_sleeprq";
event->group = "block";
event->proto_field_id = 130;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
event->fields.push_back(MakeField("rwbs", 4, kProtoString));
@@ -291,7 +291,7 @@
event->name = "block_split";
event->group = "block";
event->proto_field_id = 131;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("new_sector", 3, kProtoUint64));
event->fields.push_back(MakeField("rwbs", 4, kProtoString));
@@ -304,7 +304,7 @@
event->name = "block_touch_buffer";
event->group = "block";
event->proto_field_id = 132;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("sector", 2, kProtoUint64));
event->fields.push_back(MakeField("size", 3, kProtoUint64));
}
@@ -665,7 +665,7 @@
event->name = "ext4_alloc_da_blocks";
event->group = "ext4";
event->proto_field_id = 134;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("data_blocks", 3, kProtoUint32));
event->fields.push_back(MakeField("meta_blocks", 4, kProtoUint32));
@@ -677,7 +677,7 @@
event->name = "ext4_allocate_blocks";
event->group = "ext4";
event->proto_field_id = 135;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("block", 3, kProtoUint64));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -696,7 +696,7 @@
event->name = "ext4_allocate_inode";
event->group = "ext4";
event->proto_field_id = 136;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("dir", 3, kProtoUint64));
event->fields.push_back(MakeField("mode", 4, kProtoUint32));
@@ -708,7 +708,7 @@
event->name = "ext4_begin_ordered_truncate";
event->group = "ext4";
event->proto_field_id = 137;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("new_size", 3, kProtoInt64));
}
@@ -719,7 +719,7 @@
event->name = "ext4_collapse_range";
event->group = "ext4";
event->proto_field_id = 138;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("offset", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoInt64));
@@ -731,7 +731,7 @@
event->name = "ext4_da_release_space";
event->group = "ext4";
event->proto_field_id = 139;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("i_blocks", 3, kProtoUint64));
event->fields.push_back(MakeField("freed_blocks", 4, kProtoInt32));
@@ -747,7 +747,7 @@
event->name = "ext4_da_reserve_space";
event->group = "ext4";
event->proto_field_id = 140;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("i_blocks", 3, kProtoUint64));
event->fields.push_back(MakeField("reserved_data_blocks", 4, kProtoInt32));
@@ -761,7 +761,7 @@
event->name = "ext4_da_update_reserve_space";
event->group = "ext4";
event->proto_field_id = 141;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("i_blocks", 3, kProtoUint64));
event->fields.push_back(MakeField("used_blocks", 4, kProtoInt32));
@@ -778,7 +778,7 @@
event->name = "ext4_da_write_begin";
event->group = "ext4";
event->proto_field_id = 41;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pos", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -791,7 +791,7 @@
event->name = "ext4_da_write_end";
event->group = "ext4";
event->proto_field_id = 42;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pos", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -804,7 +804,7 @@
event->name = "ext4_da_write_pages";
event->group = "ext4";
event->proto_field_id = 142;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("first_page", 3, kProtoUint64));
event->fields.push_back(MakeField("nr_to_write", 4, kProtoInt64));
@@ -817,7 +817,7 @@
event->name = "ext4_da_write_pages_extent";
event->group = "ext4";
event->proto_field_id = 143;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint64));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -830,7 +830,7 @@
event->name = "ext4_direct_IO_enter";
event->group = "ext4";
event->proto_field_id = 144;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pos", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoUint64));
@@ -843,7 +843,7 @@
event->name = "ext4_direct_IO_exit";
event->group = "ext4";
event->proto_field_id = 145;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pos", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoUint64));
@@ -857,7 +857,7 @@
event->name = "ext4_discard_blocks";
event->group = "ext4";
event->proto_field_id = 146;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("blk", 2, kProtoUint64));
event->fields.push_back(MakeField("count", 3, kProtoUint64));
}
@@ -868,7 +868,7 @@
event->name = "ext4_discard_preallocations";
event->group = "ext4";
event->proto_field_id = 147;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
}
@@ -878,7 +878,7 @@
event->name = "ext4_drop_inode";
event->group = "ext4";
event->proto_field_id = 148;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("drop", 3, kProtoInt32));
}
@@ -889,7 +889,7 @@
event->name = "ext4_es_cache_extent";
event->group = "ext4";
event->proto_field_id = 149;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -903,7 +903,7 @@
event->name = "ext4_es_find_delayed_extent_range_enter";
event->group = "ext4";
event->proto_field_id = 150;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
}
@@ -914,7 +914,7 @@
event->name = "ext4_es_find_delayed_extent_range_exit";
event->group = "ext4";
event->proto_field_id = 151;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -928,7 +928,7 @@
event->name = "ext4_es_insert_extent";
event->group = "ext4";
event->proto_field_id = 152;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -942,7 +942,7 @@
event->name = "ext4_es_lookup_extent_enter";
event->group = "ext4";
event->proto_field_id = 153;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
}
@@ -953,7 +953,7 @@
event->name = "ext4_es_lookup_extent_exit";
event->group = "ext4";
event->proto_field_id = 154;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -968,7 +968,7 @@
event->name = "ext4_es_remove_extent";
event->group = "ext4";
event->proto_field_id = 155;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoInt64));
@@ -980,7 +980,7 @@
event->name = "ext4_es_shrink";
event->group = "ext4";
event->proto_field_id = 156;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("nr_shrunk", 2, kProtoInt32));
event->fields.push_back(MakeField("scan_time", 3, kProtoUint64));
event->fields.push_back(MakeField("nr_skipped", 4, kProtoInt32));
@@ -993,7 +993,7 @@
event->name = "ext4_es_shrink_count";
event->group = "ext4";
event->proto_field_id = 157;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("nr_to_scan", 2, kProtoInt32));
event->fields.push_back(MakeField("cache_cnt", 3, kProtoInt32));
}
@@ -1004,7 +1004,7 @@
event->name = "ext4_es_shrink_scan_enter";
event->group = "ext4";
event->proto_field_id = 158;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("nr_to_scan", 2, kProtoInt32));
event->fields.push_back(MakeField("cache_cnt", 3, kProtoInt32));
}
@@ -1015,7 +1015,7 @@
event->name = "ext4_es_shrink_scan_exit";
event->group = "ext4";
event->proto_field_id = 159;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("nr_shrunk", 2, kProtoInt32));
event->fields.push_back(MakeField("cache_cnt", 3, kProtoInt32));
}
@@ -1026,7 +1026,7 @@
event->name = "ext4_evict_inode";
event->group = "ext4";
event->proto_field_id = 160;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("nlink", 3, kProtoInt32));
}
@@ -1037,7 +1037,7 @@
event->name = "ext4_ext_convert_to_initialized_enter";
event->group = "ext4";
event->proto_field_id = 161;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("m_lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("m_len", 4, kProtoUint32));
@@ -1052,7 +1052,7 @@
event->name = "ext4_ext_convert_to_initialized_fastpath";
event->group = "ext4";
event->proto_field_id = 162;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("m_lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("m_len", 4, kProtoUint32));
@@ -1070,7 +1070,7 @@
event->name = "ext4_ext_handle_unwritten_extents";
event->group = "ext4";
event->proto_field_id = 163;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("flags", 3, kProtoInt32));
event->fields.push_back(MakeField("lblk", 4, kProtoUint32));
@@ -1086,7 +1086,7 @@
event->name = "ext4_ext_in_cache";
event->group = "ext4";
event->proto_field_id = 164;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("ret", 4, kProtoInt32));
@@ -1098,7 +1098,7 @@
event->name = "ext4_ext_load_extent";
event->group = "ext4";
event->proto_field_id = 165;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pblk", 3, kProtoUint64));
event->fields.push_back(MakeField("lblk", 4, kProtoUint32));
@@ -1110,7 +1110,7 @@
event->name = "ext4_ext_map_blocks_enter";
event->group = "ext4";
event->proto_field_id = 166;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -1123,7 +1123,7 @@
event->name = "ext4_ext_map_blocks_exit";
event->group = "ext4";
event->proto_field_id = 167;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("flags", 3, kProtoUint32));
event->fields.push_back(MakeField("pblk", 4, kProtoUint64));
@@ -1139,7 +1139,7 @@
event->name = "ext4_ext_put_in_cache";
event->group = "ext4";
event->proto_field_id = 168;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -1152,7 +1152,7 @@
event->name = "ext4_ext_remove_space";
event->group = "ext4";
event->proto_field_id = 169;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("start", 3, kProtoUint32));
event->fields.push_back(MakeField("end", 4, kProtoUint32));
@@ -1165,7 +1165,7 @@
event->name = "ext4_ext_remove_space_done";
event->group = "ext4";
event->proto_field_id = 170;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("start", 3, kProtoUint32));
event->fields.push_back(MakeField("end", 4, kProtoUint32));
@@ -1180,7 +1180,7 @@
event->name = "ext4_ext_rm_idx";
event->group = "ext4";
event->proto_field_id = 171;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pblk", 3, kProtoUint64));
}
@@ -1191,7 +1191,7 @@
event->name = "ext4_ext_rm_leaf";
event->group = "ext4";
event->proto_field_id = 172;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("partial", 3, kProtoInt64));
event->fields.push_back(MakeField("start", 4, kProtoUint32));
@@ -1206,7 +1206,7 @@
event->name = "ext4_ext_show_extent";
event->group = "ext4";
event->proto_field_id = 173;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pblk", 3, kProtoUint64));
event->fields.push_back(MakeField("lblk", 4, kProtoUint32));
@@ -1219,7 +1219,7 @@
event->name = "ext4_fallocate_enter";
event->group = "ext4";
event->proto_field_id = 174;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("offset", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoInt64));
@@ -1232,7 +1232,7 @@
event->name = "ext4_fallocate_exit";
event->group = "ext4";
event->proto_field_id = 175;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pos", 3, kProtoInt64));
event->fields.push_back(MakeField("blocks", 4, kProtoUint32));
@@ -1245,7 +1245,7 @@
event->name = "ext4_find_delalloc_range";
event->group = "ext4";
event->proto_field_id = 176;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("from", 3, kProtoUint32));
event->fields.push_back(MakeField("to", 4, kProtoUint32));
@@ -1260,7 +1260,7 @@
event->name = "ext4_forget";
event->group = "ext4";
event->proto_field_id = 177;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("block", 3, kProtoUint64));
event->fields.push_back(MakeField("is_metadata", 4, kProtoInt32));
@@ -1273,7 +1273,7 @@
event->name = "ext4_free_blocks";
event->group = "ext4";
event->proto_field_id = 178;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("block", 3, kProtoUint64));
event->fields.push_back(MakeField("count", 4, kProtoUint64));
@@ -1287,7 +1287,7 @@
event->name = "ext4_free_inode";
event->group = "ext4";
event->proto_field_id = 179;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("uid", 3, kProtoUint32));
event->fields.push_back(MakeField("gid", 4, kProtoUint32));
@@ -1301,7 +1301,7 @@
event->name = "ext4_get_implied_cluster_alloc_exit";
event->group = "ext4";
event->proto_field_id = 180;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("flags", 2, kProtoUint32));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("pblk", 4, kProtoUint64));
@@ -1315,7 +1315,7 @@
event->name = "ext4_get_reserved_cluster_alloc";
event->group = "ext4";
event->proto_field_id = 181;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -1327,7 +1327,7 @@
event->name = "ext4_ind_map_blocks_enter";
event->group = "ext4";
event->proto_field_id = 182;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -1340,7 +1340,7 @@
event->name = "ext4_ind_map_blocks_exit";
event->group = "ext4";
event->proto_field_id = 183;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("flags", 3, kProtoUint32));
event->fields.push_back(MakeField("pblk", 4, kProtoUint64));
@@ -1356,7 +1356,7 @@
event->name = "ext4_insert_range";
event->group = "ext4";
event->proto_field_id = 184;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("offset", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoInt64));
@@ -1368,7 +1368,7 @@
event->name = "ext4_invalidatepage";
event->group = "ext4";
event->proto_field_id = 185;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("index", 3, kProtoUint64));
event->fields.push_back(MakeField("offset", 4, kProtoUint32));
@@ -1381,7 +1381,7 @@
event->name = "ext4_journal_start";
event->group = "ext4";
event->proto_field_id = 186;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ip", 2, kProtoUint64));
event->fields.push_back(MakeField("blocks", 3, kProtoInt32));
event->fields.push_back(MakeField("rsv_blocks", 4, kProtoInt32));
@@ -1393,7 +1393,7 @@
event->name = "ext4_journal_start_reserved";
event->group = "ext4";
event->proto_field_id = 187;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ip", 2, kProtoUint64));
event->fields.push_back(MakeField("blocks", 3, kProtoInt32));
}
@@ -1404,7 +1404,7 @@
event->name = "ext4_journalled_invalidatepage";
event->group = "ext4";
event->proto_field_id = 188;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("index", 3, kProtoUint64));
event->fields.push_back(MakeField("offset", 4, kProtoUint32));
@@ -1417,7 +1417,7 @@
event->name = "ext4_journalled_write_end";
event->group = "ext4";
event->proto_field_id = 189;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pos", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -1430,7 +1430,7 @@
event->name = "ext4_load_inode";
event->group = "ext4";
event->proto_field_id = 190;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
}
@@ -1440,7 +1440,7 @@
event->name = "ext4_load_inode_bitmap";
event->group = "ext4";
event->proto_field_id = 191;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("group", 2, kProtoUint32));
}
@@ -1450,7 +1450,7 @@
event->name = "ext4_mark_inode_dirty";
event->group = "ext4";
event->proto_field_id = 192;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("ip", 3, kProtoUint64));
}
@@ -1461,7 +1461,7 @@
event->name = "ext4_mb_bitmap_load";
event->group = "ext4";
event->proto_field_id = 193;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("group", 2, kProtoUint32));
}
@@ -1471,7 +1471,7 @@
event->name = "ext4_mb_buddy_bitmap_load";
event->group = "ext4";
event->proto_field_id = 194;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("group", 2, kProtoUint32));
}
@@ -1481,7 +1481,7 @@
event->name = "ext4_mb_discard_preallocations";
event->group = "ext4";
event->proto_field_id = 195;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("needed", 2, kProtoInt32));
}
@@ -1491,7 +1491,7 @@
event->name = "ext4_mb_new_group_pa";
event->group = "ext4";
event->proto_field_id = 196;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pa_pstart", 3, kProtoUint64));
event->fields.push_back(MakeField("pa_lstart", 4, kProtoUint64));
@@ -1504,7 +1504,7 @@
event->name = "ext4_mb_new_inode_pa";
event->group = "ext4";
event->proto_field_id = 197;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pa_pstart", 3, kProtoUint64));
event->fields.push_back(MakeField("pa_lstart", 4, kProtoUint64));
@@ -1517,7 +1517,7 @@
event->name = "ext4_mb_release_group_pa";
event->group = "ext4";
event->proto_field_id = 198;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("pa_pstart", 2, kProtoUint64));
event->fields.push_back(MakeField("pa_len", 3, kProtoUint32));
}
@@ -1528,7 +1528,7 @@
event->name = "ext4_mb_release_inode_pa";
event->group = "ext4";
event->proto_field_id = 199;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("block", 3, kProtoUint64));
event->fields.push_back(MakeField("count", 4, kProtoUint32));
@@ -1540,7 +1540,7 @@
event->name = "ext4_mballoc_alloc";
event->group = "ext4";
event->proto_field_id = 200;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("orig_logical", 3, kProtoUint32));
event->fields.push_back(MakeField("orig_start", 4, kProtoInt32));
@@ -1568,7 +1568,7 @@
event->name = "ext4_mballoc_discard";
event->group = "ext4";
event->proto_field_id = 201;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("result_start", 3, kProtoInt32));
event->fields.push_back(MakeField("result_group", 4, kProtoUint32));
@@ -1581,7 +1581,7 @@
event->name = "ext4_mballoc_free";
event->group = "ext4";
event->proto_field_id = 202;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("result_start", 3, kProtoInt32));
event->fields.push_back(MakeField("result_group", 4, kProtoUint32));
@@ -1594,7 +1594,7 @@
event->name = "ext4_mballoc_prealloc";
event->group = "ext4";
event->proto_field_id = 203;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("orig_logical", 3, kProtoUint32));
event->fields.push_back(MakeField("orig_start", 4, kProtoInt32));
@@ -1612,7 +1612,7 @@
event->name = "ext4_other_inode_update_time";
event->group = "ext4";
event->proto_field_id = 204;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("orig_ino", 3, kProtoUint64));
event->fields.push_back(MakeField("uid", 4, kProtoUint32));
@@ -1626,7 +1626,7 @@
event->name = "ext4_punch_hole";
event->group = "ext4";
event->proto_field_id = 205;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("offset", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoInt64));
@@ -1639,7 +1639,7 @@
event->name = "ext4_read_block_bitmap_load";
event->group = "ext4";
event->proto_field_id = 206;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("group", 2, kProtoUint32));
}
@@ -1649,7 +1649,7 @@
event->name = "ext4_readpage";
event->group = "ext4";
event->proto_field_id = 207;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("index", 3, kProtoUint64));
}
@@ -1660,7 +1660,7 @@
event->name = "ext4_releasepage";
event->group = "ext4";
event->proto_field_id = 208;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("index", 3, kProtoUint64));
}
@@ -1671,7 +1671,7 @@
event->name = "ext4_remove_blocks";
event->group = "ext4";
event->proto_field_id = 209;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("from", 3, kProtoUint32));
event->fields.push_back(MakeField("to", 4, kProtoUint32));
@@ -1687,7 +1687,7 @@
event->name = "ext4_request_blocks";
event->group = "ext4";
event->proto_field_id = 210;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("len", 3, kProtoUint32));
event->fields.push_back(MakeField("logical", 4, kProtoUint32));
@@ -1705,7 +1705,7 @@
event->name = "ext4_request_inode";
event->group = "ext4";
event->proto_field_id = 211;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("dir", 2, kProtoUint64));
event->fields.push_back(MakeField("mode", 3, kProtoUint32));
}
@@ -1716,7 +1716,7 @@
event->name = "ext4_sync_file_enter";
event->group = "ext4";
event->proto_field_id = 43;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("parent", 3, kProtoUint64));
event->fields.push_back(MakeField("datasync", 4, kProtoInt32));
@@ -1728,7 +1728,7 @@
event->name = "ext4_sync_file_exit";
event->group = "ext4";
event->proto_field_id = 44;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("ret", 3, kProtoInt32));
}
@@ -1739,7 +1739,7 @@
event->name = "ext4_sync_fs";
event->group = "ext4";
event->proto_field_id = 212;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("wait", 2, kProtoInt32));
}
@@ -1775,7 +1775,7 @@
event->name = "ext4_truncate_enter";
event->group = "ext4";
event->proto_field_id = 215;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("blocks", 3, kProtoUint64));
}
@@ -1786,7 +1786,7 @@
event->name = "ext4_truncate_exit";
event->group = "ext4";
event->proto_field_id = 216;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("blocks", 3, kProtoUint64));
}
@@ -1797,7 +1797,7 @@
event->name = "ext4_unlink_enter";
event->group = "ext4";
event->proto_field_id = 217;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("parent", 3, kProtoUint64));
event->fields.push_back(MakeField("size", 4, kProtoInt64));
@@ -1809,7 +1809,7 @@
event->name = "ext4_unlink_exit";
event->group = "ext4";
event->proto_field_id = 218;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("ret", 3, kProtoInt32));
}
@@ -1820,7 +1820,7 @@
event->name = "ext4_write_begin";
event->group = "ext4";
event->proto_field_id = 219;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pos", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -1833,7 +1833,7 @@
event->name = "ext4_write_end";
event->group = "ext4";
event->proto_field_id = 230;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("pos", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoUint32));
@@ -1846,7 +1846,7 @@
event->name = "ext4_writepage";
event->group = "ext4";
event->proto_field_id = 231;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("index", 3, kProtoUint64));
}
@@ -1857,7 +1857,7 @@
event->name = "ext4_writepages";
event->group = "ext4";
event->proto_field_id = 232;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("nr_to_write", 3, kProtoInt64));
event->fields.push_back(MakeField("pages_skipped", 4, kProtoInt64));
@@ -1875,7 +1875,7 @@
event->name = "ext4_writepages_result";
event->group = "ext4";
event->proto_field_id = 233;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("ret", 3, kProtoInt32));
event->fields.push_back(MakeField("pages_written", 4, kProtoInt32));
@@ -1890,7 +1890,7 @@
event->name = "ext4_zero_range";
event->group = "ext4";
event->proto_field_id = 234;
- event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dev", 1, kProtoUint64));
event->fields.push_back(MakeField("ino", 2, kProtoUint64));
event->fields.push_back(MakeField("offset", 3, kProtoInt64));
event->fields.push_back(MakeField("len", 4, kProtoInt64));
@@ -1906,7 +1906,7 @@
event->fields.push_back(MakeField("pfn", 1, kProtoUint64));
event->fields.push_back(MakeField("i_ino", 2, kProtoUint64));
event->fields.push_back(MakeField("index", 3, kProtoUint64));
- event->fields.push_back(MakeField("s_dev", 4, kProtoUint32));
+ event->fields.push_back(MakeField("s_dev", 4, kProtoUint64));
}
{
@@ -1918,7 +1918,7 @@
event->fields.push_back(MakeField("pfn", 1, kProtoUint64));
event->fields.push_back(MakeField("i_ino", 2, kProtoUint64));
event->fields.push_back(MakeField("index", 3, kProtoUint64));
- event->fields.push_back(MakeField("s_dev", 4, kProtoUint32));
+ event->fields.push_back(MakeField("s_dev", 4, kProtoUint64));
}
{
diff --git a/src/ftrace_reader/event_info_constants.cc b/src/ftrace_reader/event_info_constants.cc
index 9de52e8..b5642ef 100644
--- a/src/ftrace_reader/event_info_constants.cc
+++ b/src/ftrace_reader/event_info_constants.cc
@@ -43,8 +43,10 @@
*out = kInode64ToUint64;
} else if (ftrace == kFtracePid32 && proto == kProtoInt32) {
*out = kPid32ToInt32;
- } else if (ftrace == kFtraceDevId32 && proto == kProtoUint32) {
- *out = kDevId32ToUint32;
+ } else if (ftrace == kFtraceDevId32 && proto == kProtoUint64) {
+ *out = kDevId32ToUint64;
+ } else if (ftrace == kFtraceDevId64 && proto == kProtoUint64) {
+ *out = kDevId64ToUint64;
} else if (ftrace == kFtraceUint8 && proto == kProtoUint32) {
*out = kUint8ToUint32;
} else if (ftrace == kFtraceUint16 && proto == kProtoUint32) {
diff --git a/src/ftrace_reader/event_info_constants.h b/src/ftrace_reader/event_info_constants.h
index 0d6ac64..e46ab89 100644
--- a/src/ftrace_reader/event_info_constants.h
+++ b/src/ftrace_reader/event_info_constants.h
@@ -61,6 +61,7 @@
kFtraceInode64,
kFtracePid32,
kFtraceDevId32,
+ kFtraceDevId64,
};
// Joint enum of FtraceFieldType (left) and ProtoFieldType (right).
@@ -84,7 +85,8 @@
kInode32ToUint64,
kInode64ToUint64,
kPid32ToInt32,
- kDevId32ToUint32,
+ kDevId32ToUint64,
+ kDevId64ToUint64,
};
inline const char* ToString(ProtoFieldType v) {
@@ -159,6 +161,8 @@
return "pid32";
case kFtraceDevId32:
return "devid32";
+ case kFtraceDevId64:
+ return "devid64";
}
// For gcc:
PERFETTO_CHECK(false);
diff --git a/src/ftrace_reader/event_info_unittest.cc b/src/ftrace_reader/event_info_unittest.cc
index cd5f0c6..773b7b1 100644
--- a/src/ftrace_reader/event_info_unittest.cc
+++ b/src/ftrace_reader/event_info_unittest.cc
@@ -75,8 +75,14 @@
ASSERT_EQ(strategy, kCStringToString);
ASSERT_TRUE(SetTranslationStrategy(kFtracePid32, kProtoInt32, &strategy));
ASSERT_EQ(strategy, kPid32ToInt32);
- ASSERT_TRUE(SetTranslationStrategy(kFtraceDevId32, kProtoUint32, &strategy));
- ASSERT_EQ(strategy, kDevId32ToUint32);
+ ASSERT_TRUE(SetTranslationStrategy(kFtraceInode32, kProtoUint64, &strategy));
+ ASSERT_EQ(strategy, kInode32ToUint64);
+ ASSERT_TRUE(SetTranslationStrategy(kFtraceInode64, kProtoUint64, &strategy));
+ ASSERT_EQ(strategy, kInode64ToUint64);
+ ASSERT_TRUE(SetTranslationStrategy(kFtraceDevId32, kProtoUint64, &strategy));
+ ASSERT_EQ(strategy, kDevId32ToUint64);
+ ASSERT_TRUE(SetTranslationStrategy(kFtraceDevId64, kProtoUint64, &strategy));
+ ASSERT_EQ(strategy, kDevId64ToUint64);
}
} // namespace
diff --git a/src/ftrace_reader/ftrace_controller.cc b/src/ftrace_reader/ftrace_controller.cc
index cf4c80b..b3259c4 100644
--- a/src/ftrace_reader/ftrace_controller.cc
+++ b/src/ftrace_reader/ftrace_controller.cc
@@ -20,6 +20,7 @@
#include <stdint.h>
#include <string.h>
#include <sys/stat.h>
+#include <sys/sysmacros.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
@@ -363,16 +364,16 @@
FtraceMetadata::FtraceMetadata() {
// A lot of the time there will only be a small number of inodes.
- inodes.reserve(10);
+ inode_and_device.reserve(10);
pids.reserve(10);
}
-void FtraceMetadata::AddDevice(uint32_t device_id) {
+void FtraceMetadata::AddDevice(BlockDeviceID device_id) {
last_seen_device_id = device_id;
}
-void FtraceMetadata::AddInode(uint64_t inode_number) {
- inodes.push_back(std::make_pair(inode_number, last_seen_device_id));
+void FtraceMetadata::AddInode(Inode inode_number) {
+ inode_and_device.push_back(std::make_pair(inode_number, last_seen_device_id));
}
void FtraceMetadata::AddPid(int32_t pid) {
@@ -384,7 +385,7 @@
}
void FtraceMetadata::Clear() {
- inodes.clear();
+ inode_and_device.clear();
pids.clear();
overwrite_count = 0;
last_seen_device_id = 0;
diff --git a/src/ftrace_reader/ftrace_controller_unittest.cc b/src/ftrace_reader/ftrace_controller_unittest.cc
index 272685f..23128f1 100644
--- a/src/ftrace_reader/ftrace_controller_unittest.cc
+++ b/src/ftrace_reader/ftrace_controller_unittest.cc
@@ -603,12 +603,12 @@
TEST(FtraceMetadataTest, Clear) {
FtraceMetadata metadata;
- metadata.inodes.push_back(std::make_pair(1, 1));
+ metadata.inode_and_device.push_back(std::make_pair(1, 1));
metadata.pids.push_back(2);
metadata.overwrite_count = 3;
metadata.last_seen_device_id = 100;
metadata.Clear();
- EXPECT_THAT(metadata.inodes, IsEmpty());
+ EXPECT_THAT(metadata.inode_and_device, IsEmpty());
EXPECT_THAT(metadata.pids, IsEmpty());
EXPECT_EQ(metadata.overwrite_count, 0u);
EXPECT_EQ(metadata.last_seen_device_id, 0u);
@@ -630,7 +630,8 @@
// Check same inode number is added
metadata.AddDevice(5);
metadata.AddInode(2);
- EXPECT_THAT(metadata.inodes, ElementsAre(Pair(2, 3), Pair(1, 3), Pair(2, 5)));
+ EXPECT_THAT(metadata.inode_and_device,
+ ElementsAre(Pair(2, 3), Pair(1, 3), Pair(2, 5)));
}
TEST(FtraceMetadataTest, AddPid) {
diff --git a/src/ftrace_reader/proto_translation_table.cc b/src/ftrace_reader/proto_translation_table.cc
index 389f251..5cbe75c 100644
--- a/src/ftrace_reader/proto_translation_table.cc
+++ b/src/ftrace_reader/proto_translation_table.cc
@@ -200,6 +200,16 @@
}
}
+ if (StartsWith(type_and_name, "dev_t ")) {
+ if (size == 4) {
+ *out = kFtraceDevId32;
+ return true;
+ } else if (size == 8) {
+ *out = kFtraceDevId64;
+ return true;
+ }
+ }
+
// Pids (as in 'sched_switch').
if (StartsWith(type_and_name, "pid_t ") && size == 4) {
*out = kFtracePid32;
diff --git a/src/ftrace_reader/proto_translation_table_unittest.cc b/src/ftrace_reader/proto_translation_table_unittest.cc
index 856f113..9e16395 100644
--- a/src/ftrace_reader/proto_translation_table_unittest.cc
+++ b/src/ftrace_reader/proto_translation_table_unittest.cc
@@ -274,6 +274,12 @@
ASSERT_TRUE(InferFtraceType("ino_t foo", 8, false, &type));
ASSERT_EQ(type, kFtraceInode64);
+ ASSERT_TRUE(InferFtraceType("dev_t foo", 4, false, &type));
+ ASSERT_EQ(type, kFtraceDevId32);
+
+ ASSERT_TRUE(InferFtraceType("dev_t foo", 8, false, &type));
+ ASSERT_EQ(type, kFtraceDevId64);
+
ASSERT_TRUE(InferFtraceType("pid_t foo", 4, false, &type));
ASSERT_EQ(type, kFtracePid32);
diff --git a/src/ftrace_reader/test/test_messages.proto b/src/ftrace_reader/test/test_messages.proto
index 5f731dd..76de416 100644
--- a/src/ftrace_reader/test/test_messages.proto
+++ b/src/ftrace_reader/test/test_messages.proto
@@ -23,10 +23,11 @@
}
message FakeAllFieldsFtraceEvent {
- optional uint32 field_dev = 1;
+ optional uint64 field_dev_32 = 1;
optional int32 field_pid = 2;
optional uint32 field_uint32 = 5;
- optional uint32 field_inode_32 = 3;
+ optional uint64 field_inode_32 = 3;
+ optional uint64 field_dev_64 = 6;
optional uint64 field_inode_64 = 4;
optional string field_char_16 = 500;
optional string field_char = 501;
diff --git a/src/traced/probes/filesystem/fs_mount.h b/src/traced/probes/filesystem/fs_mount.h
index 8d4c49a..2086a80 100644
--- a/src/traced/probes/filesystem/fs_mount.h
+++ b/src/traced/probes/filesystem/fs_mount.h
@@ -21,12 +21,10 @@
#include <map>
#include <string>
#include <vector>
+#include "perfetto/traced/data_source_types.h"
namespace perfetto {
-// On ARM, st_dev is not dev_t but unsigned long long.
-using BlockDeviceID = decltype(stat::st_dev);
-
constexpr char kMountsPath[] = "/proc/mounts";
std::multimap<BlockDeviceID, std::string> ParseMounts(
diff --git a/src/traced/probes/filesystem/inode_file_data_source.cc b/src/traced/probes/filesystem/inode_file_data_source.cc
index 0bdf781..abc1fa0 100644
--- a/src/traced/probes/filesystem/inode_file_data_source.cc
+++ b/src/traced/probes/filesystem/inode_file_data_source.cc
@@ -17,6 +17,7 @@
#include "src/traced/probes/filesystem/inode_file_data_source.h"
#include <dirent.h>
+#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <queue>
@@ -29,17 +30,18 @@
namespace perfetto {
-using BlockDeviceID = decltype(stat::st_dev);
-
-void CreateDeviceToInodeMap(
+void ScanFilesDFS(
const std::string& root_directory,
- std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>* block_device_map) {
- std::queue<std::string> queue;
- queue.push(root_directory);
+ const std::function<void(BlockDeviceID block_device_id,
+ Inode inode_number,
+ const std::string& path,
+ protos::pbzero::InodeFileMap_Entry_Type type)>&
+ fn) {
+ std::vector<std::string> queue{root_directory};
while (!queue.empty()) {
struct dirent* entry;
- std::string filepath = queue.front();
- queue.pop();
+ std::string filepath = queue.back();
+ queue.pop_back();
DIR* dir = opendir(filepath.c_str());
filepath += "/";
if (dir == nullptr)
@@ -48,82 +50,121 @@
std::string filename = entry->d_name;
if (filename == "." || filename == "..")
continue;
- Inode inode_number = entry->d_ino;
+
struct stat buf;
if (lstat(filepath.c_str(), &buf) != 0)
continue;
+
+ Inode inode_number = entry->d_ino;
BlockDeviceID block_device_id = buf.st_dev;
- std::map<Inode, InodeMapValue>& inode_map =
- (*block_device_map)[block_device_id];
- // Default
+
protos::pbzero::InodeFileMap_Entry_Type type =
protos::pbzero::InodeFileMap_Entry_Type_UNKNOWN;
// Readdir and stat not guaranteed to have directory info for all systems
if (entry->d_type == DT_DIR || S_ISDIR(buf.st_mode)) {
// Continue iterating through files if current entry is a directory
- queue.push(filepath + filename);
+ queue.push_back(filepath + filename);
type = protos::pbzero::InodeFileMap_Entry_Type_DIRECTORY;
} else if (entry->d_type == DT_REG || S_ISREG(buf.st_mode)) {
type = protos::pbzero::InodeFileMap_Entry_Type_FILE;
}
- inode_map[inode_number].SetType(type);
- inode_map[inode_number].AddPath(filepath + filename);
+
+ fn(block_device_id, inode_number, filepath + filename, type);
}
closedir(dir);
}
}
+void CreateDeviceToInodeMap(
+ const std::string& root_directory,
+ std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>* block_device_map) {
+ ScanFilesDFS(
+ root_directory,
+ [&block_device_map](BlockDeviceID block_device_id, Inode inode_number,
+ const std::string& path,
+ protos::pbzero::InodeFileMap_Entry_Type type) {
+ std::map<Inode, InodeMapValue>& inode_map =
+ (*block_device_map)[block_device_id];
+ inode_map[inode_number].SetType(type);
+ inode_map[inode_number].AddPath(path);
+ });
+}
+
InodeFileDataSource::InodeFileDataSource(
TracingSessionID id,
- std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>* file_system_inodes,
+ std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>*
+ system_partition_files,
std::unique_ptr<TraceWriter> writer)
: session_id_(id),
- file_system_inodes_(file_system_inodes),
+ system_partition_files_(system_partition_files),
writer_(std::move(writer)),
weak_factory_(this) {}
-void InodeFileDataSource::WriteInodes(
- const std::vector<std::pair<uint64_t, uint32_t>>& inodes) {
- PERFETTO_DLOG("Write Inodes start");
+bool InodeFileDataSource::AddInodeFileMapEntry(
+ InodeFileMap* inode_file_map,
+ BlockDeviceID block_device_id,
+ Inode inode_number,
+ const std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>&
+ current_partition_map) {
+ auto block_device_entry = current_partition_map.find(block_device_id);
+ if (block_device_entry != current_partition_map.end()) {
+ auto inode_map = block_device_entry->second.find(inode_number);
+ if (inode_map != block_device_entry->second.end()) {
+ auto* entry = inode_file_map->add_entries();
+ entry->set_inode_number(inode_number);
+ entry->set_type(inode_map->second.type());
+ for (const auto& path : inode_map->second.paths())
+ entry->add_paths(path.c_str());
+ return true;
+ }
+ }
+ return false;
+}
+void InodeFileDataSource::OnInodes(
+ const std::vector<std::pair<Inode, BlockDeviceID>>& inodes) {
+ PERFETTO_DLOG("Saw FtraceBundle with %zu inodes.", inodes.size());
if (mount_points_.empty()) {
mount_points_ = ParseMounts();
}
// Group inodes from FtraceMetadata by block device
std::map<BlockDeviceID, std::set<Inode>> inode_file_maps;
- for (const auto& inode : inodes) {
- BlockDeviceID block_device_id = inode.first;
- Inode inode_number = inode.second;
+ for (const auto& inodes_pair : inodes) {
+ Inode inode_number = inodes_pair.first;
+ BlockDeviceID block_device_id = inodes_pair.second;
inode_file_maps[block_device_id].emplace(inode_number);
}
// Write a TracePacket with an InodeFileMap proto for each block device id
for (const auto& inode_file_map_data : inode_file_maps) {
+ BlockDeviceID block_device_id = inode_file_map_data.first;
+ std::set<Inode> inode_numbers = inode_file_map_data.second;
+
+ // New TracePacket for each InodeFileMap
auto trace_packet = writer_->NewTracePacket();
auto inode_file_map = trace_packet->set_inode_file_map();
+
// Add block device id
- BlockDeviceID block_device_id = inode_file_map_data.first;
inode_file_map->set_block_device_id(block_device_id);
+
// Add mount points
auto range = mount_points_.equal_range(block_device_id);
for (std::multimap<BlockDeviceID, std::string>::iterator it = range.first;
- it != range.second; ++it) {
+ it != range.second; ++it)
inode_file_map->add_mount_points(it->second.c_str());
- }
- // Add entries for each inode number
- std::set<Inode> inode_numbers = inode_file_map_data.second;
+
+ // Add entries for inodes in system
+ std::map<BlockDeviceID, std::set<Inode>> data_partition_inodes;
for (const auto& inode_number : inode_numbers) {
- auto* entry = inode_file_map->add_entries();
- entry->set_inode_number(inode_number);
- auto block_device_map = file_system_inodes_->find(block_device_id);
- if (block_device_map != file_system_inodes_->end()) {
- auto inode_map = block_device_map->second.find(inode_number);
- if (inode_map != block_device_map->second.end()) {
- entry->set_type(inode_map->second.type());
- for (const auto& path : inode_map->second.paths())
- entry->add_paths(path.c_str());
- }
+ // Search in /system partition and add to InodeFileMap if found
+ bool in_system =
+ AddInodeFileMapEntry(inode_file_map, block_device_id, inode_number,
+ *system_partition_files_);
+ if (!in_system) {
+ // TODO(fmayer): Add LRU and check before adding inode for full scan
+ data_partition_inodes[block_device_id].emplace(inode_number);
}
}
+
trace_packet->Finalize();
}
}
@@ -132,9 +173,4 @@
return weak_factory_.GetWeakPtr();
}
-void InodeFileDataSource::OnInodes(
- const std::vector<std::pair<uint64_t, uint32_t>>& inodes) {
- PERFETTO_DLOG("Saw FtraceBundle with %zu inodes.", inodes.size());
-}
-
} // namespace perfetto
diff --git a/src/traced/probes/filesystem/inode_file_data_source.h b/src/traced/probes/filesystem/inode_file_data_source.h
index 889b936..8120200 100644
--- a/src/traced/probes/filesystem/inode_file_data_source.h
+++ b/src/traced/probes/filesystem/inode_file_data_source.h
@@ -25,6 +25,7 @@
#include <string>
#include "perfetto/base/weak_ptr.h"
+#include "perfetto/traced/data_source_types.h"
#include "perfetto/tracing/core/basic_types.h"
#include "perfetto/tracing/core/trace_writer.h"
#include "src/traced/probes/filesystem/fs_mount.h"
@@ -33,7 +34,6 @@
namespace perfetto {
-using Inode = uint64_t;
using InodeFileMap = protos::pbzero::InodeFileMap;
class TraceWriter;
@@ -52,6 +52,13 @@
std::set<std::string> paths_;
};
+void ScanFilesDFS(
+ const std::string& root_directory,
+ const std::function<void(BlockDeviceID block_device_id,
+ Inode inode_number,
+ const std::string& path,
+ protos::pbzero::InodeFileMap_Entry_Type type)>&);
+
void CreateDeviceToInodeMap(
const std::string& root_directory,
std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>* block_device_map);
@@ -60,19 +67,25 @@
public:
InodeFileDataSource(TracingSessionID,
std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>*
- file_system_inodes,
+ system_partition_files,
std::unique_ptr<TraceWriter> writer);
TracingSessionID session_id() const { return session_id_; }
base::WeakPtr<InodeFileDataSource> GetWeakPtr() const;
- void WriteInodes(const std::vector<std::pair<uint64_t, uint32_t>>&);
- // TODO(hjd): Combine with above.
- void OnInodes(const std::vector<std::pair<uint64_t, uint32_t>>& inodes);
+ void OnInodes(const std::vector<std::pair<Inode, BlockDeviceID>>& inodes);
+
+ bool AddInodeFileMapEntry(
+ InodeFileMap* inode_file_map,
+ BlockDeviceID block_device_id,
+ Inode inode,
+ const std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>&
+ block_device_map);
private:
const TracingSessionID session_id_;
- std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>* file_system_inodes_;
+ std::map<BlockDeviceID, std::map<Inode, InodeMapValue>>*
+ system_partition_files_;
std::multimap<BlockDeviceID, std::string> mount_points_;
std::unique_ptr<TraceWriter> writer_;
base::WeakPtrFactory<InodeFileDataSource> weak_factory_; // Keep last.
diff --git a/src/traced/probes/probes_producer.cc b/src/traced/probes/probes_producer.cc
index 854abf1..83b52af 100644
--- a/src/traced/probes/probes_producer.cc
+++ b/src/traced/probes/probes_producer.cc
@@ -268,8 +268,8 @@
const FtraceMetadata& metadata) {
trace_packet_->Finalize();
- if (file_source_ && !metadata.inodes.empty()) {
- auto inodes = metadata.inodes;
+ if (file_source_ && !metadata.inode_and_device.empty()) {
+ auto inodes = metadata.inode_and_device;
auto weak_file_source = file_source_;
task_runner_->PostTask([weak_file_source, inodes] {
if (weak_file_source)
diff --git a/test/cts/end_to_end_integrationtest_cts.cc b/test/cts/end_to_end_integrationtest_cts.cc
index 4ee3f56..787be39 100644
--- a/test/cts/end_to_end_integrationtest_cts.cc
+++ b/test/cts/end_to_end_integrationtest_cts.cc
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-#include <gtest/gtest.h>
+#include <random>
+#include "gtest/gtest.h"
#include "perfetto/trace/test_event.pbzero.h"
#include "perfetto/trace/trace_packet.pb.h"
#include "perfetto/trace/trace_packet.pbzero.h"
#include "perfetto/traced/traced.h"
#include "perfetto/tracing/core/trace_packet.h"
-
#include "test/fake_consumer.h"
namespace perfetto {
@@ -30,7 +30,6 @@
protected:
void TestMockProducer(const std::string& producer_name) {
base::TestTaskRunner task_runner;
- auto finish = task_runner.CreateCheckpoint("no.more.packets");
// Setup the trace config.
TraceConfig trace_config;
@@ -41,26 +40,33 @@
ds_config->set_name(producer_name);
ds_config->set_target_buffer(0);
+ // The parameters for the producer.
+ static constexpr uint32_t kRandomSeed = 42;
+ static constexpr uint32_t kEventCount = 10;
+
+ // Setup the test to use a random number generator.
+ ds_config->mutable_for_testing()->set_seed(kRandomSeed);
+ ds_config->mutable_for_testing()->set_message_count(kEventCount);
+
+ // Create the random generator with the same seed.
+ std::minstd_rand0 rnd_engine(kRandomSeed);
+
// Setip the function.
uint64_t total = 0;
- auto function = [&total, &finish](std::vector<TracePacket> packets,
- bool has_more) {
- if (has_more) {
- for (auto& packet : packets) {
- packet.Decode();
- ASSERT_TRUE(packet->has_for_testing());
- // ASSERT_EQ(protos::TracePacket::kTrustedUid,
- // packet->optional_trusted_uid_case());
- ASSERT_EQ(packet->for_testing().str(), "test");
- }
- total += packets.size();
+ auto finish = task_runner.CreateCheckpoint("no.more.packets");
+ auto function = [&total, &finish, &rnd_engine](
+ std::vector<TracePacket> packets, bool has_more) {
+ for (auto& packet : packets) {
+ ASSERT_TRUE(packet.Decode());
+ ASSERT_TRUE(packet->has_for_testing());
+ ASSERT_EQ(protos::TracePacket::kTrustedUid,
+ packet->optional_trusted_uid_case());
+ ASSERT_EQ(packet->for_testing().seq_value(), rnd_engine());
+ }
+ total += packets.size();
- // TODO(lalitm): renable this when stiching inside the service is
- // present.
- // ASSERT_FALSE(packets->empty());
- } else {
- ASSERT_EQ(total, 10u);
- ASSERT_TRUE(packets.empty());
+ if (!has_more) {
+ ASSERT_EQ(total, kEventCount);
finish();
}
};
@@ -73,7 +79,7 @@
// and the consumer tries to retrieve it. For now wait a bit until the
// service is done, but we should add explicit flushing to avoid this.
task_runner.PostDelayedTask([&consumer]() { consumer.ReadTraceData(); },
- 2500);
+ 5000);
task_runner.RunUntilCheckpoint("no.more.packets", 10000);
}
diff --git a/test/cts/producer/AndroidManifest.xml b/test/cts/producer/AndroidManifest.xml
index 6924a9a..6139dca 100755
--- a/test/cts/producer/AndroidManifest.xml
+++ b/test/cts/producer/AndroidManifest.xml
@@ -17,6 +17,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.perfetto.producer">
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
+
<application>
<activity android:name=".ProducerActivity" >
<intent-filter>
diff --git a/test/cts/producer/res/mipmap-hdpi/ic_launcher.png b/test/cts/producer/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..7e5732c
--- /dev/null
+++ b/test/cts/producer/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/test/cts/producer/res/mipmap-mdpi/ic_launcher.png b/test/cts/producer/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..8fc5d07
--- /dev/null
+++ b/test/cts/producer/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/test/cts/producer/res/mipmap-xhdpi/ic_launcher.png b/test/cts/producer/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..0bef6d9
--- /dev/null
+++ b/test/cts/producer/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/test/cts/producer/res/mipmap-xxhdpi/ic_launcher.png b/test/cts/producer/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..7144af0
--- /dev/null
+++ b/test/cts/producer/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/test/cts/producer/res/mipmap-xxxhdpi/ic_launcher.png b/test/cts/producer/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..2dbbdfc
--- /dev/null
+++ b/test/cts/producer/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/test/cts/producer/src/android/perfetto/producer/ProducerActivity.java b/test/cts/producer/src/android/perfetto/producer/ProducerActivity.java
index 2dfa0ce..1eedfe3 100644
--- a/test/cts/producer/src/android/perfetto/producer/ProducerActivity.java
+++ b/test/cts/producer/src/android/perfetto/producer/ProducerActivity.java
@@ -17,48 +17,49 @@
package android.perfetto.producer;
import android.app.Activity;
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class ProducerActivity extends Activity {
- private boolean paused = true;
- private final Handler handler = new Handler();
@Override
public void onResume() {
super.onResume();
- paused = false;
- handler.post(new Runnable() {
- @Override
+ NotificationManager manager =
+ (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+
+ NotificationChannel serviceChannel =
+ new NotificationChannel("service", "service", NotificationManager.IMPORTANCE_LOW);
+ serviceChannel.setDescription("Perfetto service");
+ serviceChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
+ manager.createNotificationChannel(serviceChannel);
+
+ NotificationChannel isolatedChannel = new NotificationChannel(
+ "isolated_service", "isolated_service", NotificationManager.IMPORTANCE_LOW);
+ isolatedChannel.setDescription("Perfetto isolated service");
+ isolatedChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
+ manager.createNotificationChannel(isolatedChannel);
+
+ startForegroundService(new Intent(ProducerActivity.this, ProducerService.class));
+ startForegroundService(new Intent(ProducerActivity.this, ProducerIsolatedService.class));
+
+ System.loadLibrary("perfettocts_jni");
+ new Thread(new Runnable() {
public void run() {
- if (paused) {
- return;
+ try {
+ setupProducer();
+ } catch (Exception ex) {
+ ex.printStackTrace();
}
-
- startService(new Intent(ProducerActivity.this, ProducerService.class));
- startService(new Intent(ProducerActivity.this, ProducerIsolatedService.class));
-
- System.loadLibrary("perfettocts_jni");
- new Thread(new Runnable() {
- public void run() {
- try {
- setupProducer();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- })
- .start();
}
- });
- }
-
- @Override
- public void onPause() {
- super.onPause();
- paused = true;
+ })
+ .start();
}
private static native void setupProducer();
diff --git a/test/cts/producer/src/android/perfetto/producer/ProducerIsolatedService.java b/test/cts/producer/src/android/perfetto/producer/ProducerIsolatedService.java
index cde5c32..9f26f54 100644
--- a/test/cts/producer/src/android/perfetto/producer/ProducerIsolatedService.java
+++ b/test/cts/producer/src/android/perfetto/producer/ProducerIsolatedService.java
@@ -16,13 +16,23 @@
package android.perfetto.producer;
+import android.app.Notification;
import android.app.Service;
import android.os.IBinder;
import android.content.Intent;
public class ProducerIsolatedService extends Service {
+ private static final int NOTIFICATION_ID = 123;
+
@Override
public void onCreate() {
+ Notification.Builder builder = new Notification.Builder(this, "isolated_service");
+ builder.setContentTitle("Perfetto isolated service")
+ .setContentText("Perfetto isolated service")
+ .setSmallIcon(R.mipmap.ic_launcher);
+
+ startForeground(NOTIFICATION_ID, builder.build());
+
System.loadLibrary("perfettocts_jni");
new Thread(new Runnable() {
@Override
diff --git a/test/cts/producer/src/android/perfetto/producer/ProducerService.java b/test/cts/producer/src/android/perfetto/producer/ProducerService.java
index f649ddc..a86267a 100644
--- a/test/cts/producer/src/android/perfetto/producer/ProducerService.java
+++ b/test/cts/producer/src/android/perfetto/producer/ProducerService.java
@@ -16,13 +16,22 @@
package android.perfetto.producer;
+import android.app.Notification;
import android.app.Service;
import android.os.IBinder;
import android.content.Intent;
public class ProducerService extends Service {
+ private static final int NOTIFICATION_ID = 456;
+
@Override
public void onCreate() {
+ Notification.Builder builder = new Notification.Builder(this, "service");
+ builder.setContentTitle("Perfetto service")
+ .setContentText("Perfetto service")
+ .setSmallIcon(R.mipmap.ic_launcher);
+ startForeground(NOTIFICATION_ID, builder.build());
+
System.loadLibrary("perfettocts_jni");
new Thread(new Runnable() {
@Override
diff --git a/tools/ftrace_proto_gen/ftrace_proto_gen.cc b/tools/ftrace_proto_gen/ftrace_proto_gen.cc
index 9f611f8..4a1df78 100644
--- a/tools/ftrace_proto_gen/ftrace_proto_gen.cc
+++ b/tools/ftrace_proto_gen/ftrace_proto_gen.cc
@@ -74,6 +74,14 @@
if (StartsWith(field.type_and_name, "char ") && field.size == 0)
return "string";
+ // ino_t, i_ino and dev_t are 32bit on some devices 64bit on others. For the
+ // protos we need to choose the largest possible size.
+ if (StartsWith(field.type_and_name, "ino_t ") ||
+ StartsWith(field.type_and_name, "i_ino ") ||
+ StartsWith(field.type_and_name, "dev_t ")) {
+ return "uint64";
+ }
+
// Ints of various sizes:
if (field.size <= 4 && field.is_signed)
return "int32";
diff --git a/tools/ftrace_proto_gen/ftrace_proto_gen_unittest.cc b/tools/ftrace_proto_gen/ftrace_proto_gen_unittest.cc
index ec748ee..d48cc6f 100644
--- a/tools/ftrace_proto_gen/ftrace_proto_gen_unittest.cc
+++ b/tools/ftrace_proto_gen/ftrace_proto_gen_unittest.cc
@@ -35,9 +35,12 @@
EXPECT_EQ(InferProtoType(Field{"unsigned int foo", 0, 4, false}), "uint32");
EXPECT_EQ(InferProtoType(Field{"u32 control_freq", 44, 4, false}), "uint32");
- EXPECT_EQ(InferProtoType(Field{"ino_t foo", 0, 4, false}), "uint32");
+ EXPECT_EQ(InferProtoType(Field{"ino_t foo", 0, 4, false}), "uint64");
EXPECT_EQ(InferProtoType(Field{"ino_t foo", 0, 8, false}), "uint64");
+ EXPECT_EQ(InferProtoType(Field{"dev_t foo", 0, 4, false}), "uint64");
+ EXPECT_EQ(InferProtoType(Field{"dev_t foo", 0, 8, false}), "uint64");
+
EXPECT_EQ(InferProtoType(Field{"char foo", 0, 0, false}), "string");
}
diff --git a/tools/tmux b/tools/tmux
index 44267fe..b1810a9 100755
--- a/tools/tmux
+++ b/tools/tmux
@@ -16,7 +16,13 @@
function is_monolithic {
local out=$1
- gn args $out --list --short | grep 'monolithic_binaries = true' > /dev/null
+ gn args $out --list --short | grep 'monolithic_binaries = true' 2>&1 >/dev/null
+ return $?
+}
+
+function is_android {
+ local out=$1
+ gn args $out --list --short | grep 'target_os = "android"' 2>&1 >/dev/null
return $?
}
@@ -25,16 +31,39 @@
}
function adb_supports_push_sync {
- adb --help | grep 'push.*\[--sync\]'
+ adb --help | grep 'push.*\[--sync\]' 2>&1 >/dev/null
+}
+
+function traced_probes_cmd {
+ if is_android $OUT; then
+ echo "$PREFIX $DIR/traced_probes"
+ else
+ echo "sudo $PREFIX $DIR/traced_probes"
+ fi
}
function push {
- local maybe_sync=''
- if adb_supports_push_sync; then
- maybe_sync='--sync '
+ if is_android $OUT; then
+ local maybe_sync=''
+ if adb_supports_push_sync; then
+ maybe_sync='--sync '
+ fi
+ echo adb push $maybe_sync $1 $DIR
+ adb push $maybe_sync $1 $DIR
+ else
+ echo cp $1 $DIR
+ cp $1 $DIR
fi
- echo adb push $maybe_sync $1 $2
- adb push $maybe_sync $1 $2
+}
+
+function pull {
+ if is_android $OUT; then
+ echo adb pull $DIR/$1 $2
+ adb pull $DIR/$1 $2
+ else
+ echo cp $DIR/$1 $2
+ cp $DIR/$1 $2
+ fi
}
# If not set guess the OUT dir using the latest directory.
@@ -48,32 +77,34 @@
# CONFIG=ftrace.cfg or to :test. Defaults to :test.
CONFIG="${CONFIG:-:test}"
+if is_android $OUT ; then
+ DIR=/data/local/tmp
+else
+ DIR=$(mktemp -d)
+fi
+
ninja -C $OUT traced traced_probes perfetto trace_to_text test/configs
-push $OUT/traced /data/local/tmp/
-push $OUT/traced_probes /data/local/tmp/
-push $OUT/perfetto /data/local/tmp/
+push $OUT/traced
+push $OUT/traced_probes
+push $OUT/perfetto
reset_tracing
PREFIX=""
-if ! is_monolithic $OUT; then
- PREFIX="LD_LIBRARY_PATH=/data/local/tmp"
- set -x
- adb push $OUT/libtraced_shared.so /data/local/tmp/
- set +x
+if ! is_monolithic $OUT; then
+ PREFIX="LD_LIBRARY_PATH=$DIR"
+ push $OUT/libtraced_shared.so
fi
CONFIG_DEVICE_PATH=$CONFIG
if [[ "$CONFIG" != ":test" ]]; then
- CONFIG_DEVICE_PATH=/data/local/tmp/$CONFIG.protobuf
+ CONFIG_DEVICE_PATH=$DIR/$CONFIG.protobuf
CONFIG_PATH=$OUT/$CONFIG.protobuf;
if [[ ! -f $CONFIG_PATH ]]; then
echo 'Config "'$CONFIG_PATH'" not known.'
exit 1
fi
- set -x
- adb push $CONFIG_PATH /data/local/tmp/
- set +x
+ push $CONFIG_PATH
fi
if tmux has-session -t demo; then
@@ -97,26 +128,32 @@
tmux select-pane -t 0
tmux send-keys "clear" C-m
-tmux send-keys "adb shell" C-m
+if is_android $OUT; then
+ tmux send-keys "adb shell" C-m
+fi
tmux select-pane -t 1
tmux send-keys "clear" C-m
-tmux send-keys "adb shell" C-m
+if is_android $OUT; then
+ tmux send-keys "adb shell" C-m
+fi
tmux select-pane -t 2
tmux send-keys "clear" C-m
-tmux send-keys "adb shell" C-m
+if is_android $OUT; then
+ tmux send-keys "adb shell" C-m
+fi
sleep 2
tmux select-pane -t 1
-tmux send-keys "$PREFIX /data/local/tmp/traced" Enter
+tmux send-keys "$PREFIX $DIR/traced" Enter
tmux select-pane -t 0
-tmux send-keys "$PREFIX /data/local/tmp/traced_probes" Enter
+tmux send-keys "$(traced_probes_cmd)" Enter
tmux select-pane -t 2
-tmux send-keys "$PREFIX /data/local/tmp/perfetto -c $CONFIG_DEVICE_PATH -o /data/local/tmp/trace"
+tmux send-keys "$PREFIX $DIR/perfetto -c $CONFIG_DEVICE_PATH -o $DIR/trace"
# Select consumer pane.
tmux select-pane -t 2
@@ -125,6 +162,5 @@
TRACE=$HOME/Downloads/trace.json
echo -e "\n\x1b[32mPulling trace into $TRACE\x1b[0m"
-set -x
-adb pull /data/local/tmp/trace /tmp/trace.protobuf
+pull trace /tmp/trace.protobuf
$OUT/trace_to_text systrace < /tmp/trace.protobuf > $TRACE
diff --git a/tools/trace_to_text/main.cc b/tools/trace_to_text/main.cc
index 8a63e07..ccc490b 100644
--- a/tools/trace_to_text/main.cc
+++ b/tools/trace_to_text/main.cc
@@ -17,6 +17,7 @@
#include <inttypes.h>
#include <stdio.h>
+#include <sys/sysmacros.h>
#include <algorithm>
#include <fstream>
#include <iostream>
@@ -607,19 +608,16 @@
char line[2048];
sprintf(line,
"ext4_sync_file_enter: dev %d,%d ino %lu parent %lu datasync %d \\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)),
- (unsigned long)event.ino(), (unsigned long)event.parent(),
- event.datasync());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned long)event.parent(), event.datasync());
return std::string(line);
}
std::string FormatExt4SyncFileExit(const Ext4SyncFileExitFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_sync_file_exit: dev %d,%d ino %lu ret %d\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)),
- (unsigned long)event.ino(), event.ret());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.ret());
return std::string(line);
}
@@ -627,9 +625,8 @@
char line[2048];
sprintf(line,
"ext4_da_write_begin: dev %d,%d ino %lu pos %lld len %u flags %u\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)),
- (unsigned long)event.ino(), event.pos(), event.len(), event.flags());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.pos(), event.len(), event.flags());
return std::string(line);
}
@@ -637,17 +634,15 @@
char line[2048];
sprintf(line,
"ext4_da_write_end: dev %d,%d ino %lu pos %lld len %u copied %u\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)),
- (unsigned long)event.ino(), event.pos(), event.len(), event.copied());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.pos(), event.len(), event.copied());
return std::string(line);
}
std::string FormatBlockRqIssue(const BlockRqIssueFtraceEvent& event) {
char line[2048];
sprintf(line, "block_rq_issue: %d,%d %s %u (%s) %llu + %u [%s]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
event.bytes(), event.cmd().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
event.comm().c_str());
@@ -1116,8 +1111,7 @@
std::string FormatBlockBioBackmerge(const BlockBioBackmergeFtraceEvent& event) {
char line[2048];
sprintf(line, "block_bio_backmerge: %d,%d %s %llu + %u [%s]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
event.comm().c_str());
return std::string(line);
@@ -1128,8 +1122,7 @@
sprintf(line,
"block_bio_bounce:"
"%d,%d %s %llu + %u [%s]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
event.comm().c_str());
return std::string(line);
@@ -1138,8 +1131,7 @@
std::string FormatBlockBioComplete(const BlockBioCompleteFtraceEvent& event) {
char line[2048];
sprintf(line, "block_bio_complete: %d,%d %s %llu + %u [%d]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(), event.nr_sector(), event.error());
return std::string(line);
}
@@ -1148,8 +1140,7 @@
const BlockBioFrontmergeFtraceEvent& event) {
char line[2048];
sprintf(line, "block_bio_frontmerge: %d,%d %s %llu + %u [%s]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
event.comm().c_str());
return std::string(line);
@@ -1158,8 +1149,7 @@
std::string FormatBlockBioQueue(const BlockBioQueueFtraceEvent& event) {
char line[2048];
sprintf(line, "block_bio_queue: %d,%d %s %llu + %u [%s]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
event.comm().c_str());
return std::string(line);
@@ -1168,11 +1158,9 @@
std::string FormatBlockBioRemap(const BlockBioRemapFtraceEvent& event) {
char line[2048];
sprintf(line, "block_bio_remap: %d,%d %s %llu + %u <- (%d,%d) %llu\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
- (unsigned int)(event.old_dev() >> 20),
- (unsigned int)(event.old_dev() & ((1U << 20) - 1)),
+ major(event.dev()), minor(event.dev()),
(unsigned long long)event.old_sector());
return std::string(line);
}
@@ -1180,17 +1168,15 @@
std::string FormatBlockDirtyBuffer(const BlockDirtyBufferFtraceEvent& event) {
char line[2048];
sprintf(line, "block_dirty_buffer: %d,%d sector=%llu size=%zu\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)),
+ major(event.dev()), minor(event.dev()),
(unsigned long long)event.sector(), (unsigned long)event.size());
return std::string(line);
}
std::string FormatBlockGetrq(const BlockGetrqFtraceEvent& event) {
char line[2048];
- sprintf(line, "block_getrq: %d,%d %s %llu + %u [%s]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ sprintf(line, "block_getrq: %d,%d %s %llu + %u [%s]\\n", major(event.dev()),
+ minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
event.comm().c_str());
return std::string(line);
@@ -1205,8 +1191,7 @@
std::string FormatBlockRqAbort(const BlockRqAbortFtraceEvent& event) {
char line[2048];
sprintf(line, "block_rq_abort: %d,%d %s (%s) %llu + %u [%d]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
event.cmd().c_str(), (unsigned long long)event.sector(),
event.nr_sector(), event.errors());
return std::string(line);
@@ -1215,8 +1200,7 @@
std::string FormatBlockRqComplete(const BlockRqCompleteFtraceEvent& event) {
char line[2048];
sprintf(line, "block_rq_complete: %d,%d %s (%s) %llu + %u [%d]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
event.cmd().c_str(), (unsigned long long)event.sector(),
event.nr_sector(), event.errors());
return std::string(line);
@@ -1225,8 +1209,7 @@
std::string FormatBlockRqInsert(const BlockRqInsertFtraceEvent& event) {
char line[2048];
sprintf(line, "block_rq_insert: %d,%d %s %u (%s) %llu + %u [%s]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
event.bytes(), event.cmd().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
event.comm().c_str());
@@ -1236,11 +1219,9 @@
std::string FormatBlockRqRemap(const BlockRqRemapFtraceEvent& event) {
char line[2048];
sprintf(line, "block_rq_remap: %d,%d %s %llu + %u <- (%d,%d) %llu %u\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
- (unsigned int)(event.old_dev() >> 20),
- (unsigned int)(event.old_dev() & ((1U << 20) - 1)),
+ major(event.dev()), minor(event.dev()),
(unsigned long long)event.old_sector(), event.nr_bios());
return std::string(line);
}
@@ -1248,8 +1229,7 @@
std::string FormatBlockRqRequeue(const BlockRqRequeueFtraceEvent& event) {
char line[2048];
sprintf(line, "block_rq_requeue: %d,%d %s (%s) %llu + %u [%d\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ major(event.dev()), minor(event.dev()), event.rwbs().c_str(),
event.cmd().c_str(), (unsigned long long)event.sector(),
event.nr_sector(), event.errors());
return std::string(line);
@@ -1257,9 +1237,8 @@
std::string FormatBlockSleeprq(const BlockSleeprqFtraceEvent& event) {
char line[2048];
- sprintf(line, "block_sleeprq: %d,%d %s %llu + %u [%s]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ sprintf(line, "block_sleeprq: %d,%d %s %llu + %u [%s]\\n", major(event.dev()),
+ minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(), event.nr_sector(),
event.comm().c_str());
return std::string(line);
@@ -1267,9 +1246,8 @@
std::string FormatBlockSplit(const BlockSplitFtraceEvent& event) {
char line[2048];
- sprintf(line, "block_split: %d,%d %s %llu / %llu [%s]\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ sprintf(line, "block_split: %d,%d %s %llu / %llu [%s]\\n", major(event.dev()),
+ minor(event.dev()), event.rwbs().c_str(),
(unsigned long long)event.sector(),
(unsigned long long)event.new_sector(), event.comm().c_str());
return std::string(line);
@@ -1278,8 +1256,7 @@
std::string FormatBlockTouchBuffer(const BlockTouchBufferFtraceEvent& event) {
char line[2048];
sprintf(line, "block_touch_buffer: %d,%d sector=%llu size=%zu\\n",
- (unsigned int)(event.dev() >> 20),
- (unsigned int)(event.dev() & ((1U << 20) - 1)),
+ major(event.dev()), minor(event.dev()),
(unsigned long long)event.sector(), (unsigned long)event.size());
return std::string(line);
}
@@ -1296,9 +1273,8 @@
sprintf(line,
"ext4_alloc_da_blocks: dev %d,%d ino %lu data_blocks %u meta_blocks "
"%u \\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.data_blocks(), event.meta_blocks());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.data_blocks(), event.meta_blocks());
return std::string(line);
}
@@ -1308,20 +1284,18 @@
sprintf(line,
"ext4_allocate_blocks: dev %d,%d ino %lu flags %s len %u block %llu "
"lblk %u goal %llu lleft %u lright %u pleft %llu pright %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), GetExt4HintFlag(event.flags()),
- event.len(), event.block(), event.logical(), event.goal(),
- event.lleft(), event.lright(), event.pleft(), event.pright());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ GetExt4HintFlag(event.flags()), event.len(), event.block(),
+ event.logical(), event.goal(), event.lleft(), event.lright(),
+ event.pleft(), event.pright());
return std::string(line);
}
std::string FormatExt4AllocateInode(const Ext4AllocateInodeFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_allocate_inode: dev %d,%d ino %lu dir %lu mode 0%o\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned long)event.dir(), event.mode());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned long)event.dir(), event.mode());
return std::string(line);
}
@@ -1330,9 +1304,8 @@
char line[2048];
sprintf(line,
"ext4_begin_ordered_truncate: dev %d,%d ino %lu new_size %lld\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.new_size());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.new_size());
return std::string(line);
}
@@ -1340,9 +1313,8 @@
char line[2048];
sprintf(line,
"ext4_collapse_range: dev %d,%d ino %lu offset %lld len %lld\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.offset(), event.len());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.offset(), event.len());
return std::string(line);
}
@@ -1353,11 +1325,10 @@
"ext4_da_release_space: dev %d,%d ino %lu mode 0%o i_blocks %llu "
"freed_blocks %d reserved_data_blocks %d reserved_meta_blocks %d "
"allocated_meta_blocks %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.mode(), event.i_blocks(),
- event.freed_blocks(), event.reserved_data_blocks(),
- event.reserved_meta_blocks(), event.allocated_meta_blocks());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.mode(), event.i_blocks(), event.freed_blocks(),
+ event.reserved_data_blocks(), event.reserved_meta_blocks(),
+ event.allocated_meta_blocks());
return std::string(line);
}
@@ -1367,10 +1338,9 @@
sprintf(line,
"ext4_da_reserve_space:dev %d,%d ino %lu mode 0%o i_blocks %llu "
"reserved_data_blocks %d reserved_meta_blocks %d \\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.mode(), event.i_blocks(),
- event.reserved_data_blocks(), event.reserved_meta_blocks());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.mode(), event.i_blocks(), event.reserved_data_blocks(),
+ event.reserved_meta_blocks());
return std::string(line);
}
@@ -1381,12 +1351,10 @@
"ext4_da_update_reserve_space: dev %d,%d ino %lu mode 0%o i_blocks "
"%llu used_blocks %d reserved_data_blocks %d reserved_meta_blocks %d "
"allocated_meta_blocks %d quota_claim %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.mode(), event.i_blocks(),
- event.used_blocks(), event.reserved_data_blocks(),
- event.reserved_meta_blocks(), event.allocated_meta_blocks(),
- event.quota_claim());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.mode(), event.i_blocks(), event.used_blocks(),
+ event.reserved_data_blocks(), event.reserved_meta_blocks(),
+ event.allocated_meta_blocks(), event.quota_claim());
return std::string(line);
}
@@ -1395,10 +1363,9 @@
sprintf(line,
"ext4_da_write_pages: dev %d,%d ino %lu first_page %lu nr_to_write "
"%ld sync_mode %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned long)event.first_page(),
- (long)event.nr_to_write(), event.sync_mode());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned long)event.first_page(), (long)event.nr_to_write(),
+ event.sync_mode());
return std::string(line);
}
@@ -1408,18 +1375,15 @@
char line[2048];
sprintf(line,
"ext4_da_write_pages_extent: dev %d,%d ino %lu lblk %llu len %u \\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.len());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.len());
return std::string(line);
}
std::string FormatExt4DiscardBlocks(const Ext4DiscardBlocksFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_discard_blocks: dev %d,%d blk %llu count %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.blk(),
- event.count());
+ major(event.dev()), minor(event.dev()), event.blk(), event.count());
return std::string(line);
}
@@ -1427,18 +1391,15 @@
const Ext4DiscardPreallocationsFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_discard_preallocations: dev %d,%d ino %lu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino());
return std::string(line);
}
std::string FormatExt4DropInode(const Ext4DropInodeFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_drop_inode: dev %d,%d ino %lu drop %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.drop());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.drop());
return std::string(line);
}
@@ -1447,9 +1408,8 @@
char line[2048];
sprintf(line,
"ext4_es_cache_extent: dev %d,%d ino %lu es [%u/%u) mapped %llu \\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.len(), event.pblk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.len(), event.pblk());
return std::string(line);
}
@@ -1459,9 +1419,8 @@
sprintf(
line,
"ext4_es_find_delayed_extent_range_enter: dev %d,%d ino %lu lblk %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk());
return std::string(line);
}
@@ -1472,9 +1431,8 @@
sprintf(line,
"ext4_es_find_delayed_extent_range_exit: dev %d,%d ino %lu es "
"[%u/%u) mapped %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.len(), event.pblk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.len(), event.pblk());
return std::string(line);
}
@@ -1484,9 +1442,8 @@
char line[2048];
sprintf(line,
"ext4_es_insert_extent: dev %d,%d ino %lu es [%u/%u) mapped %llu \\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.len(), event.pblk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.len(), event.pblk());
return std::string(line);
}
@@ -1494,9 +1451,8 @@
const Ext4EsLookupExtentEnterFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_es_lookup_extent_enter: dev %d,%d ino %lu lblk %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk());
return std::string(line);
}
@@ -1507,9 +1463,8 @@
sprintf(
line,
"ext4_es_lookup_extent_exit: dev %d,%d ino %lu found %d [%u/%u) %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.found(), event.lblk(), event.len(),
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.found(), event.lblk(), event.len(),
event.found() ? event.pblk() : 0);
return std::string(line);
}
@@ -1518,9 +1473,8 @@
const Ext4EsRemoveExtentFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_es_remove_extent: dev %d,%d ino %lu es [%lld/%lld)\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.len());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.len());
return std::string(line);
}
@@ -1529,8 +1483,7 @@
sprintf(line,
"ext4_es_shrink: dev %d,%d nr_shrunk %d, scan_time %llu nr_skipped "
"%d retried %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.nr_shrunk(),
+ major(event.dev()), minor(event.dev()), event.nr_shrunk(),
event.scan_time(), event.nr_skipped(), event.retried());
return std::string(line);
}
@@ -1538,9 +1491,8 @@
std::string FormatExt4EsShrinkCount(const Ext4EsShrinkCountFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_es_shrink_count: dev %d,%d nr_to_scan %d cache_cnt %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- event.nr_to_scan(), event.cache_cnt());
+ major(event.dev()), minor(event.dev()), event.nr_to_scan(),
+ event.cache_cnt());
return std::string(line);
}
@@ -1549,9 +1501,8 @@
char line[2048];
sprintf(line,
"ext4_es_shrink_scan_enter: dev %d,%d nr_to_scan %d cache_cnt %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- event.nr_to_scan(), event.cache_cnt());
+ major(event.dev()), minor(event.dev()), event.nr_to_scan(),
+ event.cache_cnt());
return std::string(line);
}
@@ -1560,8 +1511,7 @@
char line[2048];
sprintf(line,
"ext4_es_shrink_scan_exit: dev %d,%d nr_shrunk %d cache_cnt %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.nr_shrunk(),
+ major(event.dev()), minor(event.dev()), event.nr_shrunk(),
event.cache_cnt());
return std::string(line);
}
@@ -1569,9 +1519,8 @@
std::string FormatExt4EvictInode(const Ext4EvictInodeFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_evict_inode: dev %d,%d ino %lu nlink %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.nlink());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.nlink());
return std::string(line);
}
@@ -1581,10 +1530,9 @@
sprintf(line,
"ext4_ext_convert_to_initialized_enter: dev %d,%d ino %lu m_lblk %u "
"m_len %u u_lblk %u u_len %u u_pblk %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.m_lblk(), event.m_len(),
- event.u_lblk(), event.u_len(), event.u_pblk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.m_lblk(), event.m_len(), event.u_lblk(), event.u_len(),
+ event.u_pblk());
return std::string(line);
}
@@ -1595,11 +1543,9 @@
"ext4_ext_convert_to_initialized_fastpath: dev %d,%d ino %lu m_lblk "
"%u m_len %u u_lblk %u u_len %u u_pblk %llu i_lblk %u i_len %u "
"i_pblk %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.m_lblk(), event.m_len(),
- event.u_lblk(), event.u_len(), event.u_pblk(), event.i_lblk(),
- event.i_len(), event.i_pblk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.m_lblk(), event.m_len(), event.u_lblk(), event.u_len(),
+ event.u_pblk(), event.i_lblk(), event.i_len(), event.i_pblk());
return std::string(line);
}
@@ -1609,10 +1555,8 @@
sprintf(line,
"ext4_ext_handle_unwritten_extents: dev %d,%d ino %lu m_lblk %u "
"m_pblk %llu m_len %u flags %s allocated %d newblock %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.lblk(),
- (unsigned long long)event.pblk(), event.len(),
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.lblk(), (unsigned long long)event.pblk(), event.len(),
GetExt4ExtFlag(event.flags()), (unsigned int)event.allocated(),
(unsigned long long)event.newblk());
return std::string(line);
@@ -1621,18 +1565,16 @@
std::string FormatExt4ExtInCache(const Ext4ExtInCacheFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_ext_in_cache: dev %d,%d ino %lu lblk %u ret %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.lblk(), event.ret());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.lblk(), event.ret());
return std::string(line);
}
std::string FormatExt4ExtLoadExtent(const Ext4ExtLoadExtentFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_ext_load_extent: dev %d,%d ino %lu lblk %u pblk %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.pblk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.pblk());
return std::string(line);
}
@@ -1642,10 +1584,8 @@
sprintf(
line,
"ext4_ext_map_blocks_enter: dev %d,%d ino %lu lblk %u len %u flags %s\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.len(),
- GetExt4ExtFlag(event.flags()));
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.len(), GetExt4ExtFlag(event.flags()));
return std::string(line);
}
@@ -1655,10 +1595,8 @@
sprintf(line,
"ext4_ext_map_blocks_exit: dev %d,%d ino %lu lblk %u pblk %llu len "
"%u flags %x ret %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.pblk(), event.len(),
- event.flags(), event.ret());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.pblk(), event.len(), event.flags(), event.ret());
return std::string(line);
}
@@ -1667,10 +1605,8 @@
sprintf(
line,
"ext4_ext_put_in_cache: dev %d,%d ino %lu lblk %u len %u start %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.lblk(), event.len(),
- (unsigned long long)event.start());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.lblk(), event.len(), (unsigned long long)event.start());
return std::string(line);
}
@@ -1680,10 +1616,8 @@
sprintf(
line,
"ext4_ext_remove_space: dev %d,%d ino %lu since %u end %u depth %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.start(),
- (unsigned)event.end(), event.depth());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.start(), (unsigned)event.end(), event.depth());
return std::string(line);
}
@@ -1693,20 +1627,17 @@
sprintf(line,
"ext4_ext_remove_space_done: dev %d,%d ino %lu since %u end %u depth "
"%d partial %lld remaining_entries %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.start(),
- (unsigned)event.end(), event.depth(), (long long)event.partial(),
- (unsigned short)event.eh_entries());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.start(), (unsigned)event.end(), event.depth(),
+ (long long)event.partial(), (unsigned short)event.eh_entries());
return std::string(line);
}
std::string FormatExt4ExtRmIdx(const Ext4ExtRmIdxFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_ext_rm_idx: dev %d,%d ino %lu index_pblk %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned long long)event.pblk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned long long)event.pblk());
return std::string(line);
}
@@ -1715,11 +1646,10 @@
sprintf(line,
"ext4_ext_rm_leaf: dev %d,%d ino %lu start_lblk %u last_extent "
"[%u(%llu), %u]partial_cluster %lld\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.start(),
- (unsigned)event.ee_lblk(), (unsigned long long)event.ee_pblk(),
- (unsigned short)event.ee_len(), (long long)event.partial());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.start(), (unsigned)event.ee_lblk(),
+ (unsigned long long)event.ee_pblk(), (unsigned short)event.ee_len(),
+ (long long)event.partial());
return std::string(line);
}
@@ -1727,10 +1657,9 @@
char line[2048];
sprintf(line,
"ext4_ext_show_extent: dev %d,%d ino %lu lblk %u pblk %llu len %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.lblk(),
- (unsigned long long)event.pblk(), (unsigned short)event.len());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.lblk(), (unsigned long long)event.pblk(),
+ (unsigned short)event.len());
return std::string(line);
}
@@ -1740,10 +1669,8 @@
sprintf(
line,
"ext4_fallocate_enter: dev %d,%d ino %lu offset %lld len %lld mode %s\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.offset(), event.len(),
- GetExt4ModeFlag(event.mode()));
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.offset(), event.len(), GetExt4ModeFlag(event.mode()));
return std::string(line);
}
@@ -1751,9 +1678,8 @@
char line[2048];
sprintf(line,
"ext4_fallocate_exit: dev %d,%d ino %lu pos %lld blocks %u ret %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.pos(), event.blocks(), event.ret());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.pos(), event.blocks(), event.ret());
return std::string(line);
}
@@ -1763,11 +1689,9 @@
sprintf(line,
"ext4_find_delalloc_range: dev %d,%d ino %lu from %u to %u reverse "
"%d found %d (blk = %u)\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.from(),
- (unsigned)event.to(), event.reverse(), event.found(),
- (unsigned)event.found_blk());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.from(), (unsigned)event.to(), event.reverse(),
+ event.found(), (unsigned)event.found_blk());
return std::string(line);
}
@@ -1776,10 +1700,8 @@
sprintf(
line,
"ext4_forget: dev %d,%d ino %lu mode 0%o is_metadata %d block %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.mode(), event.is_metadata(),
- event.block());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.mode(), event.is_metadata(), event.block());
return std::string(line);
}
@@ -1788,10 +1710,9 @@
sprintf(line,
"ext4_free_blocks: dev %d,%d ino %lu mode 0%o block %llu count %lu "
"flags %s\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.mode(), event.block(),
- (unsigned long)event.count(), GetExt4FreeBlocksFlag(event.flags()));
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.mode(), event.block(), (unsigned long)event.count(),
+ GetExt4FreeBlocksFlag(event.flags()));
return std::string(line);
}
@@ -1800,10 +1721,8 @@
sprintf(line,
"ext4_free_inode: dev %d,%d ino %lu mode 0%o uid %u gid %u blocks "
"%llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.mode(), event.uid(), event.gid(),
- event.blocks());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.mode(), event.uid(), event.gid(), event.blocks());
return std::string(line);
}
@@ -1813,8 +1732,7 @@
sprintf(line,
"ext4_get_implied_cluster_alloc_exit: dev %d,%d m_lblk %u m_pblk "
"%llu m_len %u m_flags %u ret %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.lblk(),
+ major(event.dev()), minor(event.dev()), event.lblk(),
(unsigned long long)event.pblk(), event.len(), event.flags(),
event.ret());
return std::string(line);
@@ -1826,9 +1744,8 @@
sprintf(
line,
"ext4_get_reserved_cluster_alloc: dev %d,%d ino %lu lblk %u len %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.lblk(), event.len());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.lblk(), event.len());
return std::string(line);
}
@@ -1838,9 +1755,8 @@
sprintf(
line,
"ext4_ind_map_blocks_enter: dev %d,%d ino %lu lblk %u len %u flags %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.len(), event.flags());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.len(), event.flags());
return std::string(line);
}
@@ -1850,19 +1766,16 @@
sprintf(line,
"ext4_ind_map_blocks_exit: dev %d,%d ino %lu lblk %u pblk %llu len "
"%u flags %x ret %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.lblk(), event.pblk(), event.len(),
- event.flags(), event.ret());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.lblk(), event.pblk(), event.len(), event.flags(), event.ret());
return std::string(line);
}
std::string FormatExt4InsertRange(const Ext4InsertRangeFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_insert_range: dev %d,%d ino %lu offset %lld len %lld\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.offset(), event.len());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.offset(), event.len());
return std::string(line);
}
@@ -1872,10 +1785,8 @@
sprintf(line,
"ext4_invalidatepage: dev %d,%d ino %lu page_index %lu offset %u "
"length %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned long)event.index(),
- event.offset(), event.length());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned long)event.index(), event.offset(), event.length());
return std::string(line);
}
@@ -1884,8 +1795,7 @@
sprintf(
line,
"ext4_journal_start: dev %d,%d blocks, %d rsv_blocks, %d caller %pS\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.blocks(),
+ major(event.dev()), minor(event.dev()), event.blocks(),
event.rsv_blocks(), (void*)event.ip());
return std::string(line);
}
@@ -1895,8 +1805,7 @@
char line[2048];
sprintf(line,
"ext4_journal_start_reserved: dev %d,%d blocks, %d caller %pS\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.blocks(),
+ major(event.dev()), minor(event.dev()), event.blocks(),
(void*)event.ip());
return std::string(line);
}
@@ -1907,10 +1816,8 @@
sprintf(line,
"ext4_journalled_invalidatepage: dev %d,%d ino %lu page_index %lu "
"offset %u length %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned long)event.index(),
- event.offset(), event.length());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned long)event.index(), event.offset(), event.length());
return std::string(line);
}
@@ -1920,18 +1827,15 @@
sprintf(line,
"ext4_journalled_write_end: dev %d,%d ino %lu pos %lld len %u copied "
"%u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.pos(), event.len(), event.copied());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.pos(), event.len(), event.copied());
return std::string(line);
}
std::string FormatExt4LoadInode(const Ext4LoadInodeFtraceEvent& event) {
char line[2048];
- sprintf(line, "ext4_load_inode: dev %d,%d ino %ld\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino());
+ sprintf(line, "ext4_load_inode: dev %d,%d ino %ld\\n", major(event.dev()),
+ minor(event.dev()), (unsigned long)event.ino());
return std::string(line);
}
@@ -1939,8 +1843,7 @@
const Ext4LoadInodeBitmapFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_load_inode_bitmap: dev %d,%d group %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.group());
+ major(event.dev()), minor(event.dev()), event.group());
return std::string(line);
}
@@ -1948,17 +1851,15 @@
const Ext4MarkInodeDirtyFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_mark_inode_dirty: dev %d,%d ino %lu caller %pS\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (void*)event.ip());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (void*)event.ip());
return std::string(line);
}
std::string FormatExt4MbBitmapLoad(const Ext4MbBitmapLoadFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_mb_bitmap_load: dev %d,%d group %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.group());
+ major(event.dev()), minor(event.dev()), event.group());
return std::string(line);
}
@@ -1966,8 +1867,7 @@
const Ext4MbBuddyBitmapLoadFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_mb_buddy_bitmap_load: dev %d,%d group %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.group());
+ major(event.dev()), minor(event.dev()), event.group());
return std::string(line);
}
@@ -1975,8 +1875,7 @@
const Ext4MbDiscardPreallocationsFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_mb_discard_preallocations: dev %d,%d needed %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.needed());
+ major(event.dev()), minor(event.dev()), event.needed());
return std::string(line);
}
@@ -1985,10 +1884,8 @@
sprintf(line,
"ext4_mb_new_group_pa: dev %d,%d ino %lu pstart %llu len %u lstart "
"%llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.pa_pstart(), event.pa_len(),
- event.pa_lstart());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.pa_pstart(), event.pa_len(), event.pa_lstart());
return std::string(line);
}
@@ -1997,10 +1894,8 @@
sprintf(line,
"ext4_mb_new_inode_pa: dev %d,%d ino %lu pstart %llu len %u lstart "
"%llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.pa_pstart(), event.pa_len(),
- event.pa_lstart());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.pa_pstart(), event.pa_len(), event.pa_lstart());
return std::string(line);
}
@@ -2008,8 +1903,7 @@
const Ext4MbReleaseGroupPaFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_mb_release_group_pa: dev %d,%d pstart %llu len %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.pa_pstart(),
+ major(event.dev()), minor(event.dev()), event.pa_pstart(),
event.pa_len());
return std::string(line);
}
@@ -2019,9 +1913,8 @@
char line[2048];
sprintf(line,
"ext4_mb_release_inode_pa: dev %d,%d ino %lu block %llu count %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.block(), event.count());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.block(), event.count());
return std::string(line);
}
@@ -2031,13 +1924,12 @@
"ext4_mballoc_alloc: dev %d,%d inode %lu orig %u/%d/%u@%u goal "
"%u/%d/%u@%u result %u/%d/%u@%u blks %u grps %u cr %u flags %s tail "
"%u broken %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.orig_group(), event.orig_start(),
- event.orig_len(), event.orig_logical(), event.goal_group(),
- event.goal_start(), event.goal_len(), event.goal_logical(),
- event.result_group(), event.result_start(), event.result_len(),
- event.result_logical(), event.found(), event.groups(), event.cr(),
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.orig_group(), event.orig_start(), event.orig_len(),
+ event.orig_logical(), event.goal_group(), event.goal_start(),
+ event.goal_len(), event.goal_logical(), event.result_group(),
+ event.result_start(), event.result_len(), event.result_logical(),
+ event.found(), event.groups(), event.cr(),
GetExt4HintFlag(event.flags()), event.tail(),
event.buddy() ? 1 << event.buddy() : 0);
return std::string(line);
@@ -2047,20 +1939,16 @@
const Ext4MballocDiscardFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_mballoc_discard: dev %d,%d inode %lu extent %u/%d/%d \\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.result_group(),
- event.result_start(), event.result_len());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.result_group(), event.result_start(), event.result_len());
return std::string(line);
}
std::string FormatExt4MballocFree(const Ext4MballocFreeFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_mballoc_free: dev %d,%d inode %lu extent %u/%d/%d \\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.result_group(),
- event.result_start(), event.result_len());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.result_group(), event.result_start(), event.result_len());
return std::string(line);
}
@@ -2070,11 +1958,10 @@
sprintf(line,
"ext4_mballoc_prealloc: dev %d,%d inode %lu orig %u/%d/%u@%u result "
"%u/%d/%u@%u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.orig_group(), event.orig_start(),
- event.orig_len(), event.orig_logical(), event.result_group(),
- event.result_start(), event.result_len(), event.result_logical());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.orig_group(), event.orig_start(), event.orig_len(),
+ event.orig_logical(), event.result_group(), event.result_start(),
+ event.result_len(), event.result_logical());
return std::string(line);
}
@@ -2084,8 +1971,7 @@
sprintf(line,
"ext4_other_inode_update_time: dev %d,%d orig_ino %lu ino %lu mode "
"0%o uid %u gid %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ major(event.dev()), minor(event.dev()),
(unsigned long)event.orig_ino(), (unsigned long)event.ino(),
event.mode(), event.uid(), event.gid());
return std::string(line);
@@ -2095,10 +1981,8 @@
char line[2048];
sprintf(line,
"ext4_punch_hole: dev %d,%d ino %lu offset %lld len %lld mode %s\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.offset(), event.len(),
- GetExt4ModeFlag(event.mode()));
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.offset(), event.len(), GetExt4ModeFlag(event.mode()));
return std::string(line);
}
@@ -2106,26 +1990,23 @@
const Ext4ReadBlockBitmapLoadFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_read_block_bitmap_load: dev %d,%d group %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.group());
+ major(event.dev()), minor(event.dev()), event.group());
return std::string(line);
}
std::string FormatExt4Readpage(const Ext4ReadpageFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_readpage: dev %d,%d ino %lu page_index %lu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned long)event.index());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned long)event.index());
return std::string(line);
}
std::string FormatExt4Releasepage(const Ext4ReleasepageFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_releasepage: dev %d,%d ino %lu page_index %lu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned long)event.index());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned long)event.index());
return std::string(line);
}
@@ -2134,12 +2015,10 @@
sprintf(line,
"ext4_remove_blocks: dev %d,%d ino %lu extent [%u(%llu), %u]from %u "
"to %u partial_cluster %lld\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned)event.ee_lblk(),
- (unsigned long long)event.ee_pblk(), (unsigned short)event.ee_len(),
- (unsigned)event.from(), (unsigned)event.to(),
- (long long)event.partial());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned)event.ee_lblk(), (unsigned long long)event.ee_pblk(),
+ (unsigned short)event.ee_len(), (unsigned)event.from(),
+ (unsigned)event.to(), (long long)event.partial());
return std::string(line);
}
@@ -2148,28 +2027,25 @@
sprintf(line,
"ext4_request_blocks: dev %d,%d ino %lu flags %s len %u lblk %u goal "
"%llu lleft %u lright %u pleft %llu pright %llu \\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), GetExt4HintFlag(event.flags()),
- event.len(), event.logical(), event.goal(), event.lleft(),
- event.lright(), event.pleft(), event.pright());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ GetExt4HintFlag(event.flags()), event.len(), event.logical(),
+ event.goal(), event.lleft(), event.lright(), event.pleft(),
+ event.pright());
return std::string(line);
}
std::string FormatExt4RequestInode(const Ext4RequestInodeFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_request_inode: dev %d,%d dir %lu mode 0%o\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.dir(), event.mode());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.dir(),
+ event.mode());
return std::string(line);
}
std::string FormatExt4SyncFs(const Ext4SyncFsFtraceEvent& event) {
char line[2048];
- sprintf(line, "ext4_sync_fs: dev %d,%d wait %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.wait());
+ sprintf(line, "ext4_sync_fs: dev %d,%d wait %d\\n", major(event.dev()),
+ minor(event.dev()), event.wait());
return std::string(line);
}
@@ -2192,37 +2068,32 @@
std::string FormatExt4TruncateEnter(const Ext4TruncateEnterFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_truncate_enter: dev %d,%d ino %lu blocks %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.blocks());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.blocks());
return std::string(line);
}
std::string FormatExt4TruncateExit(const Ext4TruncateExitFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_truncate_exit: dev %d,%d ino %lu blocks %llu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.blocks());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.blocks());
return std::string(line);
}
std::string FormatExt4UnlinkEnter(const Ext4UnlinkEnterFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_unlink_enter: dev %d,%d ino %lu size %lld parent %lu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.size(),
- (unsigned long)event.parent());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.size(), (unsigned long)event.parent());
return std::string(line);
}
std::string FormatExt4UnlinkExit(const Ext4UnlinkExitFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_unlink_exit: dev %d,%d ino %lu ret %d\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.ret());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.ret());
return std::string(line);
}
@@ -2230,27 +2101,24 @@
char line[2048];
sprintf(line,
"ext4_write_begin: dev %d,%d ino %lu pos %lld len %u flags %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.pos(), event.len(), event.flags());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.pos(), event.len(), event.flags());
return std::string(line);
}
std::string FormatExt4WriteEnd(const Ext4WriteEndFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_write_end: %d,%d ino %lu pos %lld len %u copied %u\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.pos(), event.len(), event.copied());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.pos(), event.len(), event.copied());
return std::string(line);
}
std::string FormatExt4Writepage(const Ext4WritepageFtraceEvent& event) {
char line[2048];
sprintf(line, "ext4_writepage: dev %d,%d ino %lu page_index %lu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (unsigned long)event.index());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (unsigned long)event.index());
return std::string(line);
}
@@ -2260,11 +2128,10 @@
"ext4_writepages: dev %d,%d ino %lu nr_to_write %ld pages_skipped "
"%ld range_start %lld range_end %lld sync_mode %d for_kupdate %d "
"range_cyclic %d writeback_index %lu\\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), (long)event.nr_to_write(),
- (long)event.pages_skipped(), event.range_start(), event.range_end(),
- event.sync_mode(), event.for_kupdate(), event.range_cyclic(),
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ (long)event.nr_to_write(), (long)event.pages_skipped(),
+ event.range_start(), event.range_end(), event.sync_mode(),
+ event.for_kupdate(), event.range_cyclic(),
(unsigned long)event.writeback_index());
return std::string(line);
}
@@ -2275,11 +2142,9 @@
sprintf(line,
"ext4_writepages_result: dev %d,%d ino %lu ret %d pages_written %d "
"pages_skipped %ld sync_mode %d writeback_index %lu \\n",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.ret(), event.pages_written(),
- (long)event.pages_skipped(), event.sync_mode(),
- (unsigned long)event.writeback_index());
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.ret(), event.pages_written(), (long)event.pages_skipped(),
+ event.sync_mode(), (unsigned long)event.writeback_index());
return std::string(line);
}
@@ -2287,10 +2152,8 @@
char line[2048];
sprintf(line,
"ext4_zero_range: dev %d,%d ino %lu offset %lld len %lld mode %s\\n ",
- ((unsigned int)((event.dev()) >> 20)),
- ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
- (unsigned long)event.ino(), event.offset(), event.len(),
- GetExt4ModeFlag(event.mode()));
+ major(event.dev()), minor(event.dev()), (unsigned long)event.ino(),
+ event.offset(), event.len(), GetExt4ModeFlag(event.mode()));
return std::string(line);
}