afs.h (dab17c1add5c51b68027a9a3861af3a99cb5485a) afs.h (13524ab3c6f41bcd257d28644414297bea8282b7)
1/* AFS tracepoints
2 *
3 * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version

--- 388 unchanged lines hidden (view full) ---

397 __entry->off = off;
398 __entry->i_size = i_size;
399 ),
400
401 TP_printk("vn=%p %llx/%llx",
402 __entry->vnode, __entry->off, __entry->i_size)
403 );
404
1/* AFS tracepoints
2 *
3 * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version

--- 388 unchanged lines hidden (view full) ---

397 __entry->off = off;
398 __entry->i_size = i_size;
399 ),
400
401 TP_printk("vn=%p %llx/%llx",
402 __entry->vnode, __entry->off, __entry->i_size)
403 );
404
405/*
406 * We use page->private to hold the amount of the page that we've written to,
407 * splitting the field into two parts. However, we need to represent a range
408 * 0...PAGE_SIZE inclusive, so we can't support 64K pages on a 32-bit system.
409 */
410#if PAGE_SIZE > 32768
411#define AFS_PRIV_MAX 0xffffffff
412#define AFS_PRIV_SHIFT 32
413#else
414#define AFS_PRIV_MAX 0xffff
415#define AFS_PRIV_SHIFT 16
416#endif
417
418TRACE_EVENT(afs_page_dirty,
419 TP_PROTO(struct afs_vnode *vnode, const char *where,
420 pgoff_t page, unsigned long priv),
421
422 TP_ARGS(vnode, where, page, priv),
423
424 TP_STRUCT__entry(
425 __field(struct afs_vnode *, vnode )
426 __field(const char *, where )
427 __field(pgoff_t, page )
428 __field(unsigned long, priv )
429 ),
430
431 TP_fast_assign(
432 __entry->vnode = vnode;
433 __entry->where = where;
434 __entry->page = page;
435 __entry->priv = priv;
436 ),
437
438 TP_printk("vn=%p %lx %s %lu-%lu",
439 __entry->vnode, __entry->page, __entry->where,
440 __entry->priv & AFS_PRIV_MAX,
441 __entry->priv >> AFS_PRIV_SHIFT)
442 );
443
405#endif /* _TRACE_AFS_H */
406
407/* This part must be outside protection */
408#include <trace/define_trace.h>
444#endif /* _TRACE_AFS_H */
445
446/* This part must be outside protection */
447#include <trace/define_trace.h>