All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Simek <monstr@monstr.eu>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>,
	john.williams@petalogix.com, John Stultz <johnstul@us.ibm.com>
Subject: Re: [PATCH 08/57] microblaze_v7: Interrupt handling, timer support, selfmod code
Date: Fri, 20 Mar 2009 11:37:41 +0100	[thread overview]
Message-ID: <49C371F5.5010100@monstr.eu> (raw)
In-Reply-To: <alpine.LFD.2.00.0903201052340.29264@localhost.localdomain>

Hi Thomas,
> On Fri, 20 Mar 2009, Michal Simek wrote:
> 
>> Thomas,
>>
>> just one other question.
>> For me will be useful to use second timer which is inside timer IP core.
>> There are two timers with one interrupt line. And I can of course resolve which
>> counter cause it. That's no problem.
>>
>> My question is about timer_irqaction where is dev_id. What should be there?
>> Point to clocksource structure or clockevent?
>>
>> static struct irqaction timer_irqaction = {
>> 	.handler = timer_interrupt,
>> 	.flags = IRQF_DISABLED | IRQF_TIMER,
>> 	.name = "timer",
>> 	.dev_id = &clocksource_microblaze,
>> };
> 
> The clockevent of course. It's the one which emits the interrupts.
> 
> Just for clarification. The clocksource is basically a counter to read
> out the current time. Such a counter usually does not deliver
> interrupts. It wraps at some point, but that is handled by the generic
> time keeping code. If you setup the 32 bit counter to count up and let
> it run free then the counter will wrap from 0xffffffff to 0. Nothing
> you have to worry about. You just provide a function to read it.

That's is crucial information which I haven't found.

> 
> The clockevent is the device which delivers either periodic or oneshot
> interrupts. Sa you dont have to worry about the shared interrupt line
> in that case.

I have working implementation. I just need to clear some thing relate with HW -
some checking mechanism that two timer must be there + some selfmod test. I'll
send it soon and do some LTP test too but I believe that I clean that code. I
take a look at irq code too.

Below is timer_list log.

I can paste current my code but people don't like it attachment and in-line
code.I'll do regular one patch with git and send it.

Why is my .resolution: 10000000 nsecs? It seems to me weird.

I'll wait for John's answer for fixing shift and rating values too.

Thanks a lot,
Michal

> 
> Thanks,
> 
> 	tglx

# cat /proc/timer_list
Timer List Version: v0.4
HRTIMER_MAX_CLOCK_BASES: 2
now at 193684779856 nsecs

cpu: 0
 clock 0:
  .base:       902774d0
  .index:      0
  .resolution: 10000000 nsecs
  .get_time:   ktime_get_real
active timers:
 clock 1:
  .base:       902774f4
  .index:      1
  .resolution: 10000000 nsecs
  .get_time:   ktime_get
active timers:
 #0: <9e2d3a48>, hrtimer_wakeup, S:01, <9e2d3a48>, inetd/54
 # expires at 194110626631-194111626591 nsecs [in 425846775 to 426846735 nsecs]
 #1: <9e0e5a48>, hrtimer_wakeup, S:01, <9e0e5a48>, thttpd/50
 # expires at 249711205338-249811205338 nsecs [in 56026425482 to 56126425482 nsecs]


Tick Device: mode:     0
Per CPU device: 0
Clock Event Device: microblaze_clockevent
 max_delta_ns:   2147483647
 min_delta_ns:   1000
 mult:           536870912
 shift:          32
 mode:           2
 next_event:     2147483646999999999 nsecs
 set_next_event: microblaze_timer_set_next_event
 set_mode:       microblaze_timer_set_mode
 event_handler:  tick_handle_periodic

# cat /proc/timer_list
Timer List Version: v0.4
HRTIMER_MAX_CLOCK_BASES: 2
now at 198714389017 nsecs

cpu: 0
 clock 0:
  .base:       902774d0
  .index:      0
  .resolution: 10000000 nsecs
  .get_time:   ktime_get_real
active timers:
 clock 1:
  .base:       902774f4
  .index:      1
  .resolution: 10000000 nsecs
  .get_time:   ktime_get
active timers:
 #0: <9e2d3a48>, hrtimer_wakeup, S:01, <9e2d3a48>, inetd/54
 # expires at 199160628442-199161628402 nsecs [in 446239425 to 447239385 nsecs]
 #1: <9e0e5a48>, hrtimer_wakeup, S:01, <9e0e5a48>, thttpd/50
 # expires at 249711205338-249811205338 nsecs [in 50996816321 to 51096816321 nsecs]


Tick Device: mode:     0
Per CPU device: 0
Clock Event Device: microblaze_clockevent
 max_delta_ns:   2147483647
 min_delta_ns:   1000
 mult:           536870912
 shift:          32
 mode:           2
 next_event:     2147483646999999999 nsecs
 set_next_event: microblaze_timer_set_next_event
 set_mode:       microblaze_timer_set_mode
 event_handler:  tick_handle_periodic

#







  reply	other threads:[~2009-03-20 10:37 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-18 20:30 Microblaze linux support monstr
2009-03-18 20:30 ` [PATCH 01/57] microblaze_v7: Kconfig patches monstr
2009-03-18 20:30   ` [PATCH 02/57] microblaze_v7: Makefiles for Microblaze cpu monstr
2009-03-18 20:30   ` [PATCH 03/57] microblaze_v7: Cpuinfo handling monstr
2009-03-18 20:30   ` [PATCH 04/57] microblaze_v7: Open firmware files monstr
2009-03-23 18:51     ` Arnd Bergmann
2009-03-23 18:51       ` Arnd Bergmann
2009-03-23 20:44       ` Michal Simek
2009-03-23 20:53       ` Anton Vorontsov
2009-03-23 20:53         ` Anton Vorontsov
2009-03-26  0:01         ` Benjamin Herrenschmidt
2009-03-26  0:01           ` Benjamin Herrenschmidt
2009-03-24 11:17       ` Michal Simek
2009-03-24 11:17         ` Michal Simek
2009-03-18 20:30   ` [PATCH 05/57] microblaze_v7: Platorm bus registration monstr
2009-03-18 20:30   ` [PATCH 06/57] microblaze_v7: exception handling monstr
2009-03-18 20:30   ` [PATCH 07/57] microblaze_v7: Signal support monstr
2009-03-23 19:35     ` Arnd Bergmann
2009-03-24 11:14       ` Michal Simek
2009-03-18 20:30   ` [PATCH 08/57] microblaze_v7: Interrupt handling, timer support, selfmod code monstr
2009-03-19 15:49     ` Thomas Gleixner
2009-03-19 20:28       ` Michal Simek
2009-03-19 21:47         ` Thomas Gleixner
2009-03-20  2:24           ` John Stultz
2009-03-20  7:27             ` Michal Simek
2009-03-20 20:40               ` john stultz
2009-03-21 10:38                 ` Michal Simek
2009-03-21 11:14                   ` Thomas Gleixner
2009-03-21 11:57                     ` Michal Simek
2009-03-21 12:05                       ` Thomas Gleixner
2009-03-21 12:07                         ` Michal Simek
2009-03-20  6:38           ` Michal Simek
2009-03-20 10:07             ` Thomas Gleixner
2009-03-20  9:26           ` Michal Simek
2009-03-20  9:58             ` Thomas Gleixner
2009-03-20 10:37               ` Michal Simek [this message]
2009-03-20 10:49                 ` Thomas Gleixner
2009-03-20 11:28                   ` Michal Simek
2009-03-20 11:41                     ` Thomas Gleixner
2009-03-20 11:59                       ` Michal Simek
2009-03-20 14:08           ` Michal Simek
2009-03-20 14:12             ` Thomas Gleixner
2009-03-20 14:27               ` Michal Simek
2009-03-18 20:30   ` [PATCH 09/57] microblaze_v7: cache support monstr
2009-03-18 20:30   ` [PATCH 10/57] microblaze_v7: Generic dts file for platforms monstr
2009-03-18 20:30   ` [PATCH 11/57] microblaze_v7: kernel modules support monstr
2009-03-18 20:30   ` [PATCH 12/57] microblaze_v7: lmb include file monstr
2009-03-18 20:30   ` [PATCH 13/57] microblaze_v7: PVR support, cpuinfo support monstr
2009-03-18 20:30   ` [PATCH 14/57] microblaze_v7: defconfig file monstr
2009-03-18 20:30   ` [PATCH 15/57] microblaze_v7: assembler files head.S, entry-nommu.S, syscall_table.S monstr
2009-03-18 20:30   ` [PATCH 16/57] microblaze_v7: vmlinux.lds.S - linker script monstr
2009-03-18 20:30   ` [PATCH 17/57] microblaze_v7: supported function for memory - kernel/lib monstr
2009-03-18 20:30   ` [PATCH 18/57] microblaze_v7: checksum support monstr
2009-03-18 20:30   ` [PATCH 19/57] microblaze_v7: early_printk support monstr
2009-03-18 20:30   ` [PATCH 20/57] microblaze_v7: uaccess files monstr
2009-03-18 20:30   ` [PATCH 21/57] microblaze_v7: heartbeat file monstr
2009-03-18 20:30   ` [PATCH 22/57] microblaze_v7: setup.c, setup.h - system setting monstr
2009-03-18 20:30   ` [PATCH 23/57] microblaze_v7: asm-offsets monstr
2009-03-18 20:30   ` [PATCH 24/57] microblaze_v7: process and init task function monstr
2009-03-18 20:30   ` [PATCH 25/57] microblaze_v7: delay.h, timex.h monstr
2009-03-18 20:30   ` [PATCH 26/57] microblaze_v7: ptrace support monstr
2009-03-18 20:30   ` [PATCH 27/57] microblaze_v7: IPC support monstr
2009-03-18 20:30   ` [PATCH 28/57] microblaze_v7: traps support monstr
2009-03-18 20:30   ` [PATCH 29/57] microblaze_v7: memory inicialization, MMU, TLB monstr
2009-03-18 20:30   ` [PATCH 30/57] microblaze_v7: page.h, segment.h, unaligned.h monstr
2009-03-18 20:30   ` [PATCH 31/57] microblaze_v7: includes SHM*, msgbuf monstr
2009-03-18 20:30   ` [PATCH 32/57] microblaze_v7: bug headers files monstr
2009-03-18 20:31   ` [PATCH 33/57] microblaze_v7: definitions of types monstr
2009-03-18 20:31   ` [PATCH 34/57] microblaze_v7: ioctl support monstr
2009-03-18 20:31   ` [PATCH 35/57] microblaze_v7: io.h IO operations monstr
2009-03-18 20:31   ` [PATCH 36/57] microblaze_v7: headers for executables format FLAT, ELF monstr
2009-03-18 20:31   ` [PATCH 37/57] microblaze_v7: dma support monstr
2009-03-18 20:31   ` [PATCH 38/57] microblaze_v7: headers for irq monstr
2009-03-18 20:31   ` [PATCH 39/57] microblaze_v7: atomic.h bitops.h swab.h byteorder.h monstr
2009-03-18 20:31   ` [PATCH 40/57] microblaze_v7: headers pgalloc.h pgtable.h monstr
2009-03-18 20:31   ` [PATCH 41/57] microblaze_v7: system.h processor.h monstr
2009-03-18 20:31   ` [PATCH 42/57] microblaze_v7: clinkage.h linkage.h sections.h kmap_types.h monstr
2009-03-18 20:31   ` [PATCH 43/57] microblaze_v7: stats headers monstr
2009-03-18 20:31   ` [PATCH 44/57] microblaze_v7: termbits.h termios.h monstr
2009-03-23 19:37     ` Arnd Bergmann
2009-03-24 11:20       ` Michal Simek
2009-03-24 13:57         ` Arnd Bergmann
2009-03-24 14:06           ` John Williams
2009-03-24 14:44           ` Michal Simek
2009-03-18 20:31   ` [PATCH 45/57] microblaze_v7: sigcontext.h siginfo.h monstr
2009-03-18 20:31   ` [PATCH 46/57] microblaze_v7: headers simple files - empty or redirect to asm-generic monstr
2009-03-18 20:31   ` [PATCH 47/57] microblaze_v7: namei.h monstr
2009-03-18 20:31   ` [PATCH 48/57] microblaze_v7: headers files entry.h current.h mman.h registers.h sembuf.h monstr
2009-03-18 20:31   ` [PATCH 49/57] microblaze_v7: device.h param.h topology.h monstr
2009-03-18 20:31   ` [PATCH 50/57] microblaze_v7: pool.h socket.h monstr
2009-03-18 20:31   ` [PATCH 51/57] microblaze_v7: fcntl.h sockios.h ucontext.h monstr
2009-03-18 20:31   ` [PATCH 52/57] microblaze_v7: unistd.h monstr
2009-03-18 20:31   ` [PATCH 53/57] microblaze_v7: string.h thread_info.h monstr
2009-03-18 20:31   ` [PATCH 54/57] microblaze_v7: Kbuild file monstr
2009-03-18 20:31   ` [PATCH 55/57] microblaze_v7: pci headers monstr
2009-03-18 20:31   ` [PATCH 56/57] microblaze_v7: syscalls.h monstr
2009-03-18 20:31   ` [PATCH 57/57] microblaze_v7: Uartlite for Microblaze monstr
2009-03-24 16:03     ` Michal Simek
2009-03-24 16:03       ` Michal Simek
2009-03-24 16:22       ` John Williams
2009-03-24 16:22         ` John Williams
2009-03-24 16:47       ` Peter Korsgaard
2009-03-25 15:42   ` [PATCH 01/57] microblaze_v7: Kconfig patches Arnd Bergmann
2009-03-25 16:10     ` Michal Simek
2009-03-19  7:22 ` Microblaze linux support Ingo Molnar
2009-03-19  9:42   ` Michal Simek
2009-03-19 10:21     ` Ingo Molnar
2009-03-19 10:26       ` Michal Simek
2009-03-19 10:47         ` Jaswinder Singh Rajput
2009-03-19 11:10           ` Michal Simek
2009-03-19 10:50         ` Ingo Molnar
2009-03-19 10:52           ` Michal Simek
2009-03-19 11:00             ` Ingo Molnar
2009-03-19 11:04               ` Michal Simek
2009-03-19 20:35 ` Randy Dunlap
2009-03-19 20:41   ` Michal Simek
2009-03-24 15:26 ` Michal Simek
2009-03-24 15:33   ` John Linn
2009-03-24 15:42     ` Michal Simek
2009-03-24 17:46   ` [microblaze-uclinux] " Stephen Neuendorffer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49C371F5.5010100@monstr.eu \
    --to=monstr@monstr.eu \
    --cc=john.williams@petalogix.com \
    --cc=johnstul@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.