19 Dec, 2013

1 commit


18 Dec, 2013

3 commits

  • Valgrind found that extracted labels that are passed from the lexer
    weren't freed upon exit. Therefore, add a small helper function that
    walks label tables and frees them. Since also NULL can be passed to
    free(3), we do not need to take care of that here. While at it, fix
    up a spacing error in bpf_set_curr_label().

    Signed-off-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • We must not leave the socket intact in bpf_runnable(). The socket
    is used to test if the filter code is being accepted by the kernel
    or not. So right after we do the setsockopt(2), we need to close
    it again.

    Signed-off-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • If a user calls 'cpupower set --perf-bias 15', the process will end with
    a SIGSEGV in libc because cpupower-set passes a NULL optarg to the atoi
    call. This is because the getopt_long structure currently has all of
    the options as having an optional_argument when they really have a
    required argument. We change the structure to use required_argument to
    match the short options and it resolves the issue.

    This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1000439

    Signed-off-by: Josh Boyer
    Cc: Dominik Brodowski
    Cc: Thomas Renninger
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Josh Boyer
     

12 Dec, 2013

2 commits

  • There are a couple of valid use cases for a minimal low-level bpf asm
    like tool, for example, using/linking to libpcap is not an option, the
    required BPF filters use Linux extensions that are not supported by
    libpcap's compiler, a filter might be more complex and not cleanly
    implementable with libpcap's compiler, particular filter codes should
    be optimized differently than libpcap's internal BPF compiler does,
    or for security audits of emitted BPF JIT code for prepared set of BPF
    instructions resp. BPF JIT compiler development in general.

    Then, in such cases writing such a filter in low-level syntax can be
    an good alternative, for example, xt_bpf and cls_bpf users might have
    requirements that could result in more complex filter code, or one that
    cannot be expressed with libpcap (e.g. different return codes in
    cls_bpf for flowids on various BPF code paths).

    Moreover, BPF JIT implementors may wish to manually write test cases
    in order to verify the resulting JIT image, and thus need low-level
    access to BPF code generation as well. Therefore, complete the available
    toolchain for BPF with this small bpf_asm helper tool for the tools/net/
    directory. These 3 complementary minimal helper tools round up and
    facilitate BPF development.

    Signed-off-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • This patch adds a minimal BPF debugger that "emulates" the kernel's
    BPF engine (w/o extensions) and allows for single stepping (forwards
    and backwards through BPF code) or running with >=1 breakpoints through
    selected or all packets from a pcap file with a provided user filter
    in order to facilitate verification of a BPF program. When a breakpoint
    is being hit, it dumps all register contents, decoded instructions and
    in case of branches both decoded branch targets as well as other useful
    information.

    Having this facility is in particular useful to verify BPF programs
    against given test traffic *before* attaching to a live system.

    With the general availability of cls_bpf, xt_bpf, socket filters,
    team driver and e.g. PTP code, all BPF users, quite often a single
    more complex BPF program is being used. Reasons for a more complex
    BPF program are primarily to optimize execution time for making a
    verdict when multiple simple BPF programs are combined into one in
    order to prevent parsing same headers multiple times. In particular,
    for cls_bpf that can have various return paths for encoding flowids,
    and xt_bpf to come to a fw verdict this can be the case.

    Therefore, as this can result in more complex and harder to debug
    code, it would be very useful to have this minimal tool for testing
    purposes. It can also be of help for BPF JIT developers as filters
    are "test attached" to the kernel on a temporary socket thus
    triggering a JIT image dump when enabled. The tool uses an interactive
    libreadline shell with auto-completion and history support.

    Signed-off-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Daniel Borkmann
     

09 Dec, 2013

1 commit

  • Pull USB fixes from Greg KH:
    "Here are a bunch of USB fixes for 3.13-rc3.

    Nothing major, but we seem to have an argument about a XHCI fix, so
    I'm not including a revert that Sarah requested, because that breaks a
    USB network driver, and I can't revert the USB network driver fix
    without reintroducing other bugs that it fixed. So as it is,
    everything should now be working. Worse case, I can revert the XHCI
    fix before 3.13-final is out, but it seems to work well here with my
    testing, so all should be good.

    Other than that, some driver updates based on reports"

    * tag 'usb-3.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (40 commits)
    usb: hub: Use correct reset for wedged USB3 devices that are NOTATTACHED
    usb: ohci-pxa27x: include linux/dma-mapping.h
    USB: cdc-acm: Added support for the Lenovo RD02-D400 USB Modem
    usb: tools: fix a regression issue that gcc can't link to pthread
    USB: switch maintainership of chipidea to Peter
    USB: pl2303: fixed handling of CS5 setting
    USB: ftdi_sio: fixed handling of unsupported CSIZE setting
    USB: mos7840: correct handling of CS5 setting
    USB: spcp8x5: correct handling of CS5 setting
    usb: wusbcore: fix deadlock in wusbhc_gtk_rekey
    usb: wusbcore: do device lookup while holding the hc mutex
    usb: wusbcore: send keepalives to unauthenticated devices
    USB: option: support new huawei devices
    USB: serial: option: blacklist interface 1 for Huawei E173s-6
    usb: xhci: Link TRB must not occur within a USB payload burst
    usb: gadget: f_mass_storage: call try_to_freeze only when its safe
    usb: gadget: tcm_usb_gadget: mark bot_cleanup_old_alt static
    usb: gadget: ffs: fix sparse warning
    usb: gadget: zero: module parameters can be static
    usb: gadget: storage: fix sparse warning
    ...

    Linus Torvalds
     

05 Dec, 2013

1 commit

  • Reproduce:
    ray@hr-bak:~/usb$ make -C tools/usb/
    make: Entering directory `/home/ray/usb/tools/usb'
    gcc -Wall -Wextra -g -lpthread -I../include -o testusb testusb.c
    /tmp/cc0EMxfy.o: In function `main':
    /home/ray/usb/tools/usb/testusb.c:508: undefined reference to `pthread_create'
    /home/ray/usb/tools/usb/testusb.c:531: undefined reference to `pthread_join'
    collect2: error: ld returned 1 exit status
    make: *** [testusb] Error 1
    make: Leaving directory `/home/ray/usb/tools/usb'

    Comments:
    In the latest version (4.7.3) of gcc compiler, it requres that
    libraries must follow the object or source files like below:

    "gcc hello.c -lpthread" instead of "gcc -lpthread hello.c"

    And it isn't encountered at gcc version 4.7.2.
    So this patch fix to move the pthread option after testusb.c.

    Signed-off-by: Huang Rui
    Signed-off-by: Greg Kroah-Hartman

    Huang Rui
     

03 Dec, 2013

1 commit

  • Pull perf fixes from Ingo Molnar:
    "Misc kernel and tooling fixes"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    tools lib traceevent: Fix conversion of pointer to integer of different size
    perf/trace: Properly use u64 to hold event_id
    perf: Remove fragile swevent hlist optimization
    ftrace, perf: Avoid infinite event generation loop
    tools lib traceevent: Fix use of multiple options in processing field
    perf header: Fix possible memory leaks in process_group_desc()
    perf header: Fix bogus group name
    perf tools: Tag thread comm as overriden

    Linus Torvalds
     

26 Nov, 2013

2 commits

  • idlestates in sysfs are counted from 0.

    This fixes a wrong error message.
    Current behavior on a machine with 4 sleep states is:

    cpupower idle-set -e 4
    Idlestate 4 enabled on CPU 0

    -----Wrong---------------------
    cpupower idle-set -e 5
    Idlestate enabling not supported by kernel
    -----Must and now will be -----
    cpupower idle-set -e 5
    Idlestate 6 not available on CPU 0
    -------------------------------

    cpupower idle-set -e 6
    Idlestate 6 not available on CPU 0

    Signed-off-by: Thomas Renninger
    Signed-off-by: Rafael J. Wysocki

    Thomas Renninger
     
  • The cpupower idle-set subcommand was introduce recently.
    This patch provides the missing manpage.

    If cpupower is properly installed it will show up automatically
    (similar to git), when invoking:
    cpupower help idle-set
    or
    cpupower idle-set --help

    Some parts have been taken over and adjusted from
    git commit 62d6ae880e3e76098
    documentation submitted by Carsten Emde.

    Signed-off-by: Thomas Renninger
    Signed-off-by: Rafael J. Wysocki

    Thomas Renninger
     

21 Nov, 2013

1 commit

  • Pull more ACPI and power management updates from Rafael Wysocki:

    - ACPI-based device hotplug fixes for issues introduced recently and a
    fix for an older error code path bug in the ACPI PCI host bridge
    driver

    - Fix for recently broken OMAP cpufreq build from Viresh Kumar

    - Fix for a recent hibernation regression related to s2disk

    - Fix for a locking-related regression in the ACPI EC driver from
    Puneet Kumar

    - System suspend error code path fix related to runtime PM and runtime
    PM documentation update from Ulf Hansson

    - cpufreq's conservative governor fix from Xiaoguang Chen

    - New processor IDs for intel_idle and turbostat and removal of an
    obsolete Kconfig option from Len Brown

    - New device IDs for the ACPI LPSS (Low-Power Subsystem) driver and
    ACPI-based PCI hotplug (ACPIPHP) cleanup from Mika Westerberg

    - Removal of several ACPI video DMI blacklist entries that are not
    necessary any more from Aaron Lu

    - Rework of the ACPI companion representation in struct device and code
    cleanup related to that change from Rafael J Wysocki, Lan Tianyu and
    Jarkko Nikula

    - Fixes for assigning names to ACPI-enumerated I2C and SPI devices from
    Jarkko Nikula

    * tag 'pm+acpi-2-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (24 commits)
    PCI / hotplug / ACPI: Drop unused acpiphp_debug declaration
    ACPI / scan: Set flags.match_driver in acpi_bus_scan_fixed()
    ACPI / PCI root: Clear driver_data before failing enumeration
    ACPI / hotplug: Fix PCI host bridge hot removal
    ACPI / hotplug: Fix acpi_bus_get_device() return value check
    cpufreq: governor: Remove fossil comment in the cpufreq_governor_dbs()
    ACPI / video: clean up DMI table for initial black screen problem
    ACPI / EC: Ensure lock is acquired before accessing ec struct members
    PM / Hibernate: Do not crash kernel in free_basic_memory_bitmaps()
    ACPI / AC: Remove struct acpi_device pointer from struct acpi_ac
    spi: Use stable dev_name for ACPI enumerated SPI slaves
    i2c: Use stable dev_name for ACPI enumerated I2C slaves
    ACPI: Provide acpi_dev_name accessor for struct acpi_device device name
    ACPI / bind: Use (put|get)_device() on ACPI device objects too
    ACPI: Eliminate the DEVICE_ACPI_HANDLE() macro
    ACPI / driver core: Store an ACPI device pointer in struct acpi_dev_node
    cpufreq: OMAP: Fix compilation error 'r & ret undeclared'
    PM / Runtime: Fix error path for prepare
    PM / Runtime: Update documentation around probe|remove|suspend
    cpufreq: conservative: set requested_freq to policy max when it is over policy max
    ...

    Linus Torvalds
     

20 Nov, 2013

1 commit

  • gcc complaint on 32-bit system:

    /home/acme/git/linux/tools/lib/traceevent/event-parse.c: In function ‘eval_num_arg’:
    /home/acme/git/linux/tools/lib/traceevent/event-parse.c:3468:9: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]

    This is because the eval_num_arg returns everything as an 'unsigned long long',
    so it converts a void pointer to a wider integer, fix it by converting the void
    pointer to an integer of the same size, 'unsigned long', before casting it to
    'unsigned long long'.

    Acked-by: Steven Rostedt
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-yllx4aqcg06v5n4vjpwiiuld@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

19 Nov, 2013

5 commits

  • Jiri Olsa reported that the scsi_dispatch_cmd_done event failed to parse
    with:

    Error: expected type 5 but read 4
    Error: expected type 5 but read 4

    The problem is with this part of the print_fmt:

    __print_symbolic(((REC->result) >> 24) & 0xff, ...

    The __print_symbolic() helper function's first parameter is the field to
    use to determine what symbol to print based on the value of the result.
    The parser can handle one operation, but it can not handle multiple
    operations ('>>' and '&').

    Add code to process all operations for the field argument for
    __print_symbolic() as well as __print_flags().

    Reported-by: Jiri Olsa
    Signed-off-by: Steven Rostedt
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/20131118142314.27ca334b@gandalf.local.home
    Signed-off-by: Arnaldo Carvalho de Melo

    Steven Rostedt
     
  • After processing all group descriptors or encountering an error, it
    frees all descriptors. However, current logic can leak memory since it
    might not traverse all descriptors.

    Note that the 'i' can have different value than nr_groups when an error
    occurred and it's safe to call free(desc[i].name) for every desc since
    we already make it NULL when it's reused for group names.

    Signed-off-by: Namhyung Kim
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1384741244-7271-2-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • When processing event group descriptor in perf file header, we reuse an
    allocated group name but forgot to prevent it from freeing.

    Reported-by: Stephane Eranian
    Signed-off-by: Namhyung Kim
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1384741244-7271-1-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • The problem is that when a thread overrides its default ":%pid" comm, we
    forget to tag the thread comm as overriden. Hence, this overriden comm
    is not inherited on future forks. Fix it.

    Signed-off-by: Frederic Weisbecker
    Tested-by: David Ahern
    Acked-by: Namhyung Kim
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/20131116010207.GA18855@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Frederic Weisbecker
     
  • * pm-tools:
    tools / power turbostat: Support Silvermont

    Rafael J. Wysocki
     

17 Nov, 2013

1 commit

  • Pull perf fixes from Ingo Molnar:
    "Tooling changes only: it includes the ARM tooling fixlets, various
    other fixes, smaller updates, minor cleanups"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf record: Add an option to force per-cpu mmaps
    perf probe: Add '--demangle'/'--no-demangle'
    perf ui browser: Fix segfault caused by off by one handling END key
    perf symbols: Limit max callchain using max_stack on DWARF unwinding too
    perf evsel: Introduce perf_evsel__prev() method
    perf tools: Use perf_evlist__{first,last}, perf_evsel__next
    perf tools: Synthesize anon MMAP records again
    perf top: Add missing newline if the 'uid' is invalid
    perf tools: Remove trivial extra semincolon
    perf trace: Tweak summary output
    tools/perf/build: Fix feature-libunwind-debug-frame handling
    tools/perf/build: Fix timerfd feature check

    Linus Torvalds
     

15 Nov, 2013

12 commits

  • Pull virtio updates from Rusty Russell:
    "Nothing really exciting: some groundwork for changing virtio endian,
    and some robustness fixes for broken virtio devices, plus minor
    tweaks"

    * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    virtio_scsi: verify if queue is broken after virtqueue_get_buf()
    x86, asmlinkage, lguest: Pass in globals into assembler statement
    virtio: mmio: fix signature checking for BE guests
    virtio_ring: adapt to notify() returning bool
    virtio_net: verify if queue is broken after virtqueue_get_buf()
    virtio_console: verify if queue is broken after virtqueue_get_buf()
    virtio_blk: verify if queue is broken after virtqueue_get_buf()
    virtio_ring: add new function virtqueue_is_broken()
    virtio_test: verify if virtqueue_kick() succeeded
    virtio_net: verify if virtqueue_kick() succeeded
    virtio_ring: let virtqueue_{kick()/notify()} return a bool
    virtio_ring: change host notification API
    virtio_config: remove virtio_config_val
    virtio: use size-based config accessors.
    virtio_config: introduce size-based accessors.
    virtio_ring: plug kmemleak false positive.
    virtio: pm: use CONFIG_PM_SLEEP instead of CONFIG_PM

    Linus Torvalds
     
  • By default, when tasks are specified (i.e. -p, -t or -u options)
    per-thread mmaps are created.

    Add an option to override that and force per-cpu mmaps.

    Further comments by peterz:

    So this option allows -t/-p/-u to create one buffer per cpu and attach
    all the various thread/process/user tasks' their counters to that one
    buffer?

    As opposed to the current state where each such counter would have its
    own buffer.

    Signed-off-by: Adrian Hunter
    Tested-by: Sukadev Bhattiprolu
    Acked-by: Peter Zijlstra
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1383313899-15987-7-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • You can't pass demangled name into "perf probe", because of special chars:
    ./perf probe -f -x /tmp/a.out 'foo(int)'
    Semantic error :There is non-digit char in line number.

    And you can't even pass without demangling (because it search symbol in
    DSO with demangle=true):
    ./perf probe -f -x /tmp/a.out _Z3fooi
    no symbols found in /tmp/a.out, maybe install a debug package?

    However:
    nm /tmp/a.out | grep foo
    000000000040056d T _Z3fooi

    After this patch, using the next command:
    ./perf probe -f --no-demangle -x /tmp/a.out _Z3fooi

    probe will be successfully added.

    Signed-off-by: Azat Khuzhin
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1382947464-31266-1-git-send-email-a3at.mail@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Azat Khuzhin
     
  • $ perf record ls
    $ perf report

    Press 'down enter end'

    Result:

    Program received signal SIGSEGV, Segmentation fault.

    The UI browser, used on a argv array would access past the end of the
    array on SEEK_END because it wasn't using 'nr_entries - 1', fix it.

    Reported-by: v.karpov@samsung.com
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=59291
    Link: http://lkml.kernel.org/n/tip-3g83ipasqi219ktv764xzzjs@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • It was affecting only frame-pointer (fp) based callchain processing.

    Usage example:

    perf top --call-graph dwarf,1024 --max-stack 2

    Works for any tool that does callchain resolving and provides a
    --max-stack option.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Waiman Long
    Link: http://lkml.kernel.org/n/tip-eu45v8s3tq9ruay8tpfyon79@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Just one use so far, on the hists browser, for completeness since there
    we use perf_evlist__{first,last} and perf_evsel__next() for handling the
    TAB and UNTAB keys.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-d09l4lejp5427enuf3igpckw@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • In a few remaining places where the equivalent open coded variant was
    still being used.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-4vjnloi5fisilykwxalb5nel@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • When introducing the PERF_RECORD_MMAP2 in:

    5c5e854bc760 perf tools: Add attr->mmap2 support

    A check for the number of entries parsed by sscanf was introduced that
    assumed all of the 8 fields needed to be correctly parsed so that
    particular /proc/pid/maps line would be considered synthesizable.

    That broke anon records synthesizing, as it doesn't have the 'execname'
    field.

    Fix it by keeping the sscanf return check, changing it to not require
    that the 'execname' variable be parsed, so that the preexisting logic
    can kick in and set it to '//anon'.

    This should get things like JIT profiling working again.

    Signed-off-by: Don Zickus
    Cc: Bill Gray
    Cc: Jiri Olsa
    Cc: Joe Mario
    Cc: Richard Fowles
    Cc: Stephane Eranian
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/n/tip-bo4akalno7579shpz29u867j@git.kernel.org
    [ commit log message is mine, dzickus reported the problem with a patch ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Don Zickus
     
  • Add missing newline if the 'uid' is invalid:

    hubble:~> perf top --stdio -u help
    Error:
    Invalid User: helphubble:~>

    Fixed by this patch:

    comet:~/tip/tools/perf> perf top --stdio -u help
    Error:
    Invalid User: help
    comet:~/tip/tools/perf>

    Signed-off-by: Ingo Molnar
    Cc: Frederic Weisbecker
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/20131112232609.GA31474@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Ingo Molnar
     
  • Accidentally ran into these, get rid of them.

    Signed-off-by: Davidlohr Bueso
    Link: http://lkml.kernel.org/r/1384323864.2527.8.camel@buesod1.americas.hpqcorp.net
    Signed-off-by: Arnaldo Carvalho de Melo

    Davidlohr Bueso
     
  • Tweak the summary output as suggested by Ingo Molnar:

    [penberg@localhost ~]$ perf trace -a --duration 10000 --summary -- sleep 1
    ^C
    Summary of events:

    Xorg (817), 148 events, 0.0%, 0.000 msec

    syscall calls min avg max stddev
    (msec) (msec) (msec) (%)
    --------------- -------- --------- --------- --------- ------
    read 7 0.002 0.004 0.011 32.00%
    rt_sigprocmask 40 0.001 0.001 0.002 1.31%
    ioctl 6 0.002 0.003 0.005 19.45%
    writev 7 0.004 0.018 0.059 43.76%
    select 9 0.000 74.513 507.869 74.61%
    setitimer 4 0.001 0.002 0.002 10.08%

    Suggested-by: Ingo Molnar
    Signed-off-by: Pekka Enberg
    Acked-by: Ingo Molnar
    Cc: David Ahern
    Cc: Ingo Molnar
    Link: http://lkml.kernel.org/r/1384345308-24404-1-git-send-email-penberg@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Pekka Enberg
     
  • Set feature-libunwind-debug-frame. We don't want it in
    CORE_FEATURE_TESTS because it's not the generic case, but we
    need to set it in the !feature-libunwind case.

    Also, because x86 distributions typically don't have
    dwarf_find_debug_frame() unwinding method:

    test-libunwind-debug-frame.c:(.text+0x31): undefined reference to `_Ux86_64_dwarf_find_debug_frame'

    Restrict this new API to ARM for the time being.

    With this patch test-all.c works again, so repeat perf builds
    are fast again:

    comet:~/tip> perf stat --null --repeat 5 make -C tools/perf/
    [...]

    0,452899660 seconds time elapsed ( +- 0,11% )

    While with before it was:

    comet:~/tip> perf stat --null --repeat 5 make -C tools/perf/
    [...]

    1,674001829 seconds time elapsed ( +- 0,16% )

    [ Includes fix to config/feature-checks/Makefile from Will Deacon. ]

    Tested-by: Will Deacon
    Tested-by: Jean Pihet
    Cc: Russell King
    Cc: Linus Torvalds
    Cc: Arnaldo Carvalho de Melo
    Cc: Jiri Olsa
    Link: http://lkml.kernel.org/n/tip-scsoctqzmou3rpkixCHezy9e@git.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

14 Nov, 2013

5 commits

  • 'feature_timerfd' is checked all the time and calculated explicitly,
    in a serial fashion. Add it to CORE_FEATURE_TESTS which causes it to
    be built in parallel, using the newfangled parallel build autodetection
    code.

    This shaves 137 msecs off the perf build time on my system, which
    speeds up the common case cached build by 43%:

    Before:

    comet:~/tip> perf stat --null --repeat 5 make -C tools/perf/
    [...]
    0,453771441 seconds time elapsed ( +- 0,09% )

    After:

    comet:~/tip> perf stat --null --repeat 5 make -C tools/perf/
    [...]
    0,316290185 seconds time elapsed ( +- 0,24% )

    Cc: David Ahern
    Cc: Arnaldo Carvalho de Melo
    Cc: Linus Torvalds
    Link: http://lkml.kernel.org/n/tip-bb92CmexihopoSyqnkqepvsy@git.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Pull perf updates from Ingo Molnar:
    "A number of fixes:

    - Fix segfault on perf trace -i perf.data, from Namhyung Kim.

    - Fix segfault with --no-mmap-pages, from David Ahern.

    - Don't force a refresh during progress update in the TUI, greatly
    reducing startup costs, fix from Patrick Palka.

    - Fix sw clock event period test wrt not checking if using >
    max_sample_freq.

    - Handle throttle events in 'object code reading' test, fix from
    Adrian Hunter.

    - Prevent condition that all sort keys are elided, fix from Namhyung
    Kim.

    - Round mmap pages to power 2, from David Ahern.

    And a number of late arrival changes:

    - Add summary only option to 'perf trace', suppressing the decoding
    of events, from David Ahern

    - 'perf trace --summary' formatting simplifications, from Pekka
    Enberg.

    - Beautify fifth argument of mmap() as fd, in 'perf trace', from
    Namhyung Kim.

    - Add direct access to dynamic arrays in libtraceevent, from Steven
    Rostedt.

    - Synthesize non-exec MMAP records when --data used, allowing the
    resolution of data addresses to symbols (global variables, etc), by
    Arnaldo Carvalho de Melo.

    - Code cleanups by David Ahern and Adrian Hunter"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
    tools lib traceevent: Add direct access to dynamic arrays
    perf target: Shorten perf_target__ to target__
    perf tests: Handle throttle events in 'object code reading' test
    perf evlist: Refactor mmap_pages parsing
    perf evlist: Round mmap pages to power 2 - v2
    perf record: Fix segfault with --no-mmap-pages
    perf trace: Add summary only option
    perf trace: Simplify '--summary' output
    perf trace: Change syscall summary duration order
    perf tests: Compensate lower sample freq with longer test loop
    perf trace: Fix segfault on perf trace -i perf.data
    perf trace: Separate tp syscall field caching into init routine to be reused
    perf trace: Beautify fifth argument of mmap() as fd
    perf tests: Use lower sample_freq in sw clock event period test
    perf tests: Check return of perf_evlist__open sw clock event period test
    perf record: Move existing write_output into helper function
    perf record: Use correct return type for write()
    perf tools: Prevent condition that all sort keys are elided
    perf machine: Simplify synthesize_threads method
    perf machine: Introduce synthesize_threads method out of open coded equivalent
    ...

    Linus Torvalds
     
  • Merge dependencies to apply a fix.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Pull thermal management updates from Zhang Rui:
    "This time we only have a few changes as there are no soc thermal
    changes from Eduardo. The only big change is the introduction of
    TMON, a tool to help visualize, tune, and test the thermal subsystem.
    The rest is mostly cleanups and fixes all over.

    Specifics:

    - introduce TMON, a tool base on thermal sysfs I/F. It can be used
    to visualize, tune and test the thermal subsystem.

    - fix a zone/cooling device binding problem, when both thermal zone
    bind parameters and .bind() callback are available"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    tools/thermal: Introduce tmon, a tool for thermal subsystem
    thermal: Fix binding problem when there is thermal zone params
    thermal: cpu_cooling: fix return value check in cpufreq_cooling_register()
    Thermal: Check for validity before doing kfree
    thermal/intel_powerclamp: Add newer CPU models
    Thermal: Tidy up error handling in powerclamp_init
    thermal: Kconfig: cosmetic fixes
    ACPI/thermal : Remove zone disabled warning
    typo in drivers/thermal/Kconfig: lpatform instead of platform

    Linus Torvalds
     
  • Pull ARM updates from Russell King:
    "Included in this series are:

    1. BE8 (modern big endian) changes for ARM from Ben Dooks
    2. big.Little support from Nicolas Pitre and Dave Martin
    3. support for LPAE systems with all system memory above 4GB
    4. Perf updates from Will Deacon
    5. Additional prefetching and other performance improvements from Will.
    6. Neon-optimised AES implementation fro Ard.
    7. A number of smaller fixes scattered around the place.

    There is a rather horrid merge conflict in tools/perf - I was never
    notified of the conflict because it originally occurred between Will's
    tree and other stuff. Consequently I have a resolution which Will
    forwarded me, which I'll forward on immediately after sending this
    mail.

    The other notable thing is I'm expecting some build breakage in the
    crypto stuff on ARM only with Ard's AES patches. These were merged
    into a stable git branch which others had already pulled, so there's
    little I can do about this. The problem is caused because these
    patches have a dependency on some code in the crypto git tree - I
    tried requesting a branch I can pull to resolve these, and all I got
    each time from the crypto people was "we'll revert our patches then"
    which would only make things worse since I still don't have the
    dependent patches. I've no idea what's going on there or how to
    resolve that, and since I can't split these patches from the rest of
    this pull request, I'm rather stuck with pushing this as-is or
    reverting Ard's patches.

    Since it should "come out in the wash" I've left them in - the only
    build problems they seem to cause at the moment are with randconfigs,
    and since it's a new feature anyway. However, if by -rc1 the
    dependencies aren't in, I think it'd be best to revert Ard's patches"

    I resolved the perf conflict roughly as per the patch sent by Russell,
    but there may be some differences. Any errors are likely mine. Let's
    see how the crypto issues work out..

    * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (110 commits)
    ARM: 7868/1: arm/arm64: remove atomic_clear_mask() in "include/asm/atomic.h"
    ARM: 7867/1: include: asm: use 'int' instead of 'unsigned long' for 'oldval' in atomic_cmpxchg().
    ARM: 7866/1: include: asm: use 'long long' instead of 'u64' within atomic.h
    ARM: 7871/1: amba: Extend number of IRQS
    ARM: 7887/1: Don't smp_cross_call() on UP devices in arch_irq_work_raise()
    ARM: 7872/1: Support arch_irq_work_raise() via self IPIs
    ARM: 7880/1: Clear the IT state independent of the Thumb-2 mode
    ARM: 7878/1: nommu: Implement dummy early_paging_init()
    ARM: 7876/1: clear Thumb-2 IT state on exception handling
    ARM: 7874/2: bL_switcher: Remove cpu_hotplug_driver_{lock,unlock}()
    ARM: footbridge: fix build warnings for netwinder
    ARM: 7873/1: vfp: clear vfp_current_hw_state for dying cpu
    ARM: fix misplaced arch_virt_to_idmap()
    ARM: 7848/1: mcpm: Implement cpu_kill() to synchronise on powerdown
    ARM: 7847/1: mcpm: Factor out logical-to-physical CPU translation
    ARM: 7869/1: remove unused XSCALE_PMU Kconfig param
    ARM: 7864/1: Handle 64-bit memory in case of 32-bit phys_addr_t
    ARM: 7863/1: Let arm_add_memory() always use 64-bit arguments
    ARM: 7862/1: pcpu: replace __get_cpu_var_uses
    ARM: 7861/1: cacheflush: consolidate single-CPU ARMv7 cache disabling code
    ...

    Linus Torvalds
     

13 Nov, 2013

4 commits

  • Soft dirty bit allows us to track which pages are written since the last
    clear_ref (by "echo 4 > /proc/pid/clear_refs".) This is useful for
    userspace applications to know their memory footprints.

    Note that the kernel exposes this flag via bit[55] of /proc/pid/pagemap,
    and the semantics is not a default one (scheduled to be the default in the
    near future.) However, it shifts to the new semantics at the first
    clear_ref, and the users of soft dirty bit always do it before utilizing
    the bit, so that's not a big deal. Users must avoid relying on the bit in
    page-types before the first clear_ref.

    Signed-off-by: Naoya Horiguchi
    Cc: Wu Fengguang
    Cc: Pavel Emelyanov
    Cc: Cyrill Gorcunov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Naoya Horiguchi
     
  • Support the next generation Intel Atom processor
    mirco-architecture, formerly called Silvermont.

    The server version, formerly called "Avoton",
    is named the "Intel(R) Atom(TM) Processor C2000 Product Family".

    The client version, formerly called "Bay Trail",
    is named the "Intel Atom Processor Z3000 Series",
    as well as various "Intel Pentium Processor"
    and "Intel Celeron Processor" brands, depending
    on form-factor.

    Silvermont has a set of MSRs not far off from NHM,
    but the RAPL register set is a sub-set of those previously supported.

    Signed-off-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Len Brown
     
  • …/acme/linux into perf/urgent

    Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

    * Add summary only option to 'perf trace', suppressing the decoding of
    events, from David Ahern

    * 'perf trace --summary' formatting simplifications, from Pekka Emberg.

    * Beautify fifth argument of mmap() as fd, in 'perf trace', from Namhyung Kim.

    * Fix segfault on perf trace -i perf.data, from Namhyung Kim.

    * Fix segfault with --no-mmap-pages, from David Ahern.

    * Round mmap pages to power 2, from David Ahern.

    * Add direct access to dynamic arrays in libtraceevent, from Steven Rostedt.

    * Handle throttle events in 'object code reading' test, fix from Adrian Hunter.

    * Prevent condition that all sort keys are elided, fix from Namhyung Kim.

    * Synthesize non-exec MMAP records when --data used, allowing the resolution of
    data addresses to symbols (global variables, etc).

    * Don't force a refresh during progress update in the TUI, greatly reducing
    startup costs, fix from Patrick Palka.

    * Fix sw clock event period test wrt not checking if using > max_sample_freq.

    * Code cleanups by David Ahern and Adrian Hunter.

    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • Jiri Olsa was writing a plugin for the cfg80211_tx_mlme_mgmt trace
    event, and was not able to get the implemented function working.
    The event's print fmt looks like:

    "netdev:%s(%d), ftype:0x%.2x", REC->name, REC->ifindex,
    __le16_to_cpup((__le16 *)__get_dynamic_array(frame))

    As there's no helper function for __le16_to_cpup(), Jiri was creating one
    with a plugin. But unfortunately, it would not work even though he set
    up the plugin correctly.

    The problem is that the function parameters do not handle the helper
    function "__get_dynamic_array()", and that passes in a NULL pointer.

    Adding PRINT_DYNAMIC_ARRAY direct support to eval_num_arg() allows the
    use of __get_dynamic_array() in function parameters.

    Reported-by: Jiri Olsa
    Signed-off-by: Steven Rostedt
    Tested-by: Jiri Olsa
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/20131111160810.0ba9df7d@gandalf.local.home
    Signed-off-by: Arnaldo Carvalho de Melo

    Steven Rostedt