1. 14 12月, 2009 10 次提交
    • M
      microblaze: ftrace: Add dynamic trace support · 7d241ff0
      Michal Simek 提交于
      With dynamic function tracer, by default, _mcount is defined as an
      "empty" function, it returns directly without any more action. When
      enabling it in user-space, it will jump to a real tracing
      function(ftrace_caller), and do the real job for us.
      
      Differ from the static function tracer, dynamic function tracer provides
      two functions ftrace_make_call()/ftrace_make_nop() to enable/disable the
      tracing of some indicated kernel functions(set_ftrace_filter).
      
      In the kernel version, there is only one "_mcount" string for every
      kernel function, so, we just need to match this one in mcount_regex of
      scripts/recordmcount.pl.
      
      For more information please look at code and Documentation/trace folder.
      
      Steven ACK that scripts/recordmcount.pl part.
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      7d241ff0
    • M
      microblaze: ftrace: enable HAVE_FUNCTION_TRACE_MCOUNT_TEST · 6d9e60ce
      Michal Simek 提交于
      Implement MCOUNT_TEST in asm code - it is faster than use
      generic code
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      6d9e60ce
    • M
      microblaze: ftrace: add static function tracer · 2fd7c761
      Michal Simek 提交于
      If -pg of gcc is enabled with CONFIG_FUNCTION_TRACER=y. a calling to
      _mcount will be inserted into each kernel function. so, there is a
      possibility to trace the kernel functions in _mcount.
      
      This patch add the specific _mcount support for static function
      tracing. by default, ftrace_trace_function is initialized as
      ftrace_stub(an empty function), so, the default _mcount will introduce
      very little overhead. after enabling ftrace in user-space, it will jump
      to a real tracing function and do static function tracing for us.
      
      Commit message from Wu Zhangjin <wuzhangjin@gmail.com>
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      2fd7c761
    • M
      microblaze: Add TRACE_IRQFLAGS_SUPPORT · a3cd613b
      Michal Simek 提交于
      There are just two major changes
      Renamed local_irq functions to raw_local_irq in irq.c.
      Added TRACE_IRQFLAGS_SUPPORT to Kconfig.debug.
      
      Look at Documentation/irqflags-tracing.txt
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      a3cd613b
    • M
      microblaze: Lockdep support · bf2d8096
      Michal Simek 提交于
      Microblaze needs to do lock_init very soon because MMU init calls lock functions.
      
      Here is the explanation from Peter Zijlstra why we have to enable
      __ARCH_WANTS_INTERRUPTS_ON_CTSW.
      
      "So we schedule while holding rq->lock (for obvious reasons), but since
      lockdep tracks held locks per tasks, we need to transfer the held state
      from the prev to the next task. We do this by explicity calling
      spin_release(&rq->lock) in context_switch() right before switch_to(),
      and calling spin_acquire(&rq->lock) in
      finish_task_switch()->finish_lock_switch().
      
      Now, for some reason lockdep thinks that interrupts got enabled over the
      context switch (git grep __ARCH_WANTS_INTERRUPTS_ON_CTSW arch/microblaze
      doesn't seem to turn up anything).
      
      Clearly trying to acquire the rq->lock with interrupts enabled is a bad
      idea and lockdep warns you about this."
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      bf2d8096
    • M
      microblaze: Register timecounter/cyclecounter · 519e9f41
      Michal Simek 提交于
      It is the same counter as we use as free running one.
      I would like to use it for ftrace.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      519e9f41
    • M
      microblaze: Stack trace support · 24b45a12
      Michal Simek 提交于
      This is working implemetation but the problem is that
      Microblaze misses frame pointer that's why is there
      big loop which trace and show all addresses which are in text.
      It shows addresses which are in registers, etc.
      
      This is problem and this is the reason why all Microblaze
      traces are wrong. There is an option to do hacks and trace
      the kernel code but this is too complicated.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      24b45a12
    • M
      microblaze: Add IRQENTRY_TEXT to lds · 7cf79d59
      Michal Simek 提交于
      It is important for ftrace irqsoff support
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      7cf79d59
    • M
      microblaze: __init_begin symbol must be aligned · 13cdee23
      Michal Simek 提交于
      The problem was that free_initmem pass to  free_initrd_mem got
      bad aligned __init_begin symbol and free_initrd_mem don't care
      about __init_end but take PAGE_SIZE instead.
      
      Here is behavior in kernel bootlog.
      ramdisk_execute_command from (init/main.c) was rewrite
      
      Freeing unused kernel memory: 6224k freed
      Failed to execute ��������������{���
      Failed to execute ��������������{����.  Attempting defaults...
      Mounting proc:
      Mounting var:
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      13cdee23
    • M
      microblaze: GPIO reset support · 42a2478b
      Michal Simek 提交于
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      42a2478b
  2. 11 12月, 2009 1 次提交
  3. 16 10月, 2009 2 次提交
  4. 13 10月, 2009 1 次提交
    • A
      net: Introduce recvmmsg socket syscall · a2e27255
      Arnaldo Carvalho de Melo 提交于
      Meaning receive multiple messages, reducing the number of syscalls and
      net stack entry/exit operations.
      
      Next patches will introduce mechanisms where protocols that want to
      optimize this operation will provide an unlocked_recvmsg operation.
      
      This takes into account comments made by:
      
      . Paul Moore: sock_recvmsg is called only for the first datagram,
        sock_recvmsg_nosec is used for the rest.
      
      . Caitlin Bestler: recvmmsg now has a struct timespec timeout, that
        works in the same fashion as the ppoll one.
      
        If the underlying protocol returns a datagram with MSG_OOB set, this
        will make recvmmsg return right away with as many datagrams (+ the OOB
        one) it has received so far.
      
      . Rémi Denis-Courmont & Steven Whitehouse: If we receive N < vlen
        datagrams and then recvmsg returns an error, recvmmsg will return
        the successfully received datagrams, store the error and return it
        in the next call.
      
      This paves the way for a subsequent optimization, sk_prot->unlocked_recvmsg,
      where we will be able to acquire the lock only at batch start and end, not at
      every underlying recvmsg call.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a2e27255
  5. 05 10月, 2009 2 次提交
  6. 24 9月, 2009 1 次提交
  7. 22 9月, 2009 9 次提交
  8. 21 9月, 2009 5 次提交
    • M
      microblaze: Improve checking mechanism for MSR instruction · 9002062f
      Michal Simek 提交于
      It is more safe to use clear instead of msrset.
      We save some instructions too.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      9002062f
    • M
      microblaze: Add checking mechanism for MSR instruction · 2622434e
      Michal Simek 提交于
      It was necessary to use fourth parameter(r8) in early_printk
      to show messages on console.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      2622434e
    • T
      microblaze: Cleanup linker script using new linker script macros. · 8cc11f5a
      Tim Abbott 提交于
      I wasn't able to further clean up the linker script using the
      INIT_DATA_SECTION macro because of the FIXME comment for the
      .init.ramfs section; when that is resolved we should convert
      microblaze to use INIT_DATA_SECTION.
      Signed-off-by: NTim Abbott <tabbott@ksplice.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: microblaze-uclinux@itee.uq.edu.au
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      8cc11f5a
    • I
      perf: Do the big rename: Performance Counters -> Performance Events · cdd6c482
      Ingo Molnar 提交于
      Bye-bye Performance Counters, welcome Performance Events!
      
      In the past few months the perfcounters subsystem has grown out its
      initial role of counting hardware events, and has become (and is
      becoming) a much broader generic event enumeration, reporting, logging,
      monitoring, analysis facility.
      
      Naming its core object 'perf_counter' and naming the subsystem
      'perfcounters' has become more and more of a misnomer. With pending
      code like hw-breakpoints support the 'counter' name is less and
      less appropriate.
      
      All in one, we've decided to rename the subsystem to 'performance
      events' and to propagate this rename through all fields, variables
      and API names. (in an ABI compatible fashion)
      
      The word 'event' is also a bit shorter than 'counter' - which makes
      it slightly more convenient to write/handle as well.
      
      Thanks goes to Stephane Eranian who first observed this misnomer and
      suggested a rename.
      
      User-space tooling and ABI compatibility is not affected - this patch
      should be function-invariant. (Also, defconfigs were not touched to
      keep the size down.)
      
      This patch has been generated via the following script:
      
        FILES=$(find * -type f | grep -vE 'oprofile|[^K]config')
      
        sed -i \
          -e 's/PERF_EVENT_/PERF_RECORD_/g' \
          -e 's/PERF_COUNTER/PERF_EVENT/g' \
          -e 's/perf_counter/perf_event/g' \
          -e 's/nb_counters/nb_events/g' \
          -e 's/swcounter/swevent/g' \
          -e 's/tpcounter_event/tp_event/g' \
          $FILES
      
        for N in $(find . -name perf_counter.[ch]); do
          M=$(echo $N | sed 's/perf_counter/perf_event/g')
          mv $N $M
        done
      
        FILES=$(find . -name perf_event.*)
      
        sed -i \
          -e 's/COUNTER_MASK/REG_MASK/g' \
          -e 's/COUNTER/EVENT/g' \
          -e 's/\<event\>/event_id/g' \
          -e 's/counter/event/g' \
          -e 's/Counter/Event/g' \
          $FILES
      
      ... to keep it as correct as possible. This script can also be
      used by anyone who has pending perfcounters patches - it converts
      a Linux kernel tree over to the new naming. We tried to time this
      change to the point in time where the amount of pending patches
      is the smallest: the end of the merge window.
      
      Namespace clashes were fixed up in a preparatory patch - and some
      stylistic fallout will be fixed up in a subsequent patch.
      
      ( NOTE: 'counters' are still the proper terminology when we deal
        with hardware registers - and these sed scripts are a bit
        over-eager in renaming them. I've undone some of that, but
        in case there's something left where 'counter' would be
        better than 'event' we can undo that on an individual basis
        instead of touching an otherwise nicely automated patch. )
      Suggested-by: NStephane Eranian <eranian@google.com>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: NPaul Mackerras <paulus@samba.org>
      Reviewed-by: NArjan van de Ven <arjan@linux.intel.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: <linux-arch@vger.kernel.org>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      cdd6c482
    • J
      d200c922
  9. 18 8月, 2009 3 次提交
  10. 27 7月, 2009 6 次提交