From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <43BC87C2.1080503@domain.hid> Date: Wed, 04 Jan 2006 19:43:14 -0700 From: Jim Cromie MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050808020003040805090604" Subject: [Xenomai-core] heres a go at an adeos-ipipe-2.6.15-i386-1.1-01.patch List-Id: "Xenomai life and development \(bug reports, patches, discussions\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai@xenomai.org This is a multi-part message in MIME format. --------------050808020003040805090604 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit hi Phillipe, everyone, happy 06 ! Out of curiosity, I applied adeos-ipipe-2.6.14-i386-1.1-01.patch on top of 15. the rejects were small, and simple enough looking, that even a lazy sod like myself might manually fix them, so I did. whats more, it built clean and booted ! I havent done anything more demanding than ls, df, etc, but hey, low hanging fruit tastes just as good / even better ;-) So heres hoping that you've not started this particular thankless task, and Ive saved your cycles for something more dependent on your particular talents. enjoy. jimc --------------050808020003040805090604 Content-Type: application/x-bzip; name="diff.try-15-ipipe-101.20060104.170829.bz2" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="diff.try-15-ipipe-101.20060104.170829.bz2" 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 MQ== --------------050808020003040805090604 Content-Type: text/plain; name="try-15-ipipe-101-rejects" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="try-15-ipipe-101-rejects" ./arch/i386/kernel/io_apic.c.rej ./include/linux/preempt.h.rej ./init/main.c.rej ./kernel/irq/handle.c.rej ./kernel/Makefile.rej *************** *** 1313,1322 **** /* * Add it to the IO-APIC irq-routing table: */ - spin_lock_irqsave(&ioapic_lock, flags); io_apic_write(0, 0x11+2*pin, *(((int *)&entry)+1)); io_apic_write(0, 0x10+2*pin, *(((int *)&entry)+0)); - spin_unlock_irqrestore(&ioapic_lock, flags); enable_8259A_irq(0); } --- 1315,1324 ---- /* * Add it to the IO-APIC irq-routing table: */ + spin_lock_irqsave_hw(&ioapic_lock, flags); io_apic_write(0, 0x11+2*pin, *(((int *)&entry)+1)); io_apic_write(0, 0x10+2*pin, *(((int *)&entry)+0)); + spin_unlock_irqrestore_hw(&ioapic_lock, flags); enable_8259A_irq(0); } *************** *** 13,53 **** extern void fastcall add_preempt_count(int val); extern void fastcall sub_preempt_count(int val); #else - # define add_preempt_count(val) do { preempt_count() += (val); } while (0) - # define sub_preempt_count(val) do { preempt_count() -= (val); } while (0) #endif - #define inc_preempt_count() add_preempt_count(1) - #define dec_preempt_count() sub_preempt_count(1) - #define preempt_count() (current_thread_info()->preempt_count) #ifdef CONFIG_PREEMPT asmlinkage void preempt_schedule(void); - #define preempt_disable() \ - do { \ - inc_preempt_count(); \ - barrier(); \ } while (0) - #define preempt_enable_no_resched() \ - do { \ - barrier(); \ - dec_preempt_count(); \ } while (0) - #define preempt_check_resched() \ - do { \ - if (unlikely(test_thread_flag(TIF_NEED_RESCHED))) \ - preempt_schedule(); \ } while (0) - #define preempt_enable() \ - do { \ - preempt_enable_no_resched(); \ - preempt_check_resched(); \ } while (0) #else --- 13,70 ---- extern void fastcall add_preempt_count(int val); extern void fastcall sub_preempt_count(int val); #else + #define add_preempt_count(val) do { preempt_count() += (val); } while (0) + #define sub_preempt_count(val) do { preempt_count() -= (val); } while (0) #endif + #define inc_preempt_count() add_preempt_count(1) + #define dec_preempt_count() sub_preempt_count(1) + #define preempt_count() (current_thread_info()->preempt_count) #ifdef CONFIG_PREEMPT asmlinkage void preempt_schedule(void); + #ifdef CONFIG_IPIPE + + #include + + extern struct ipipe_domain *ipipe_percpu_domain[], *ipipe_root_domain; + + #define ipipe_preempt_guard() (ipipe_percpu_domain[ipipe_processor_id()] == ipipe_root_domain) + #else + #define ipipe_preempt_guard() 1 + #endif + + #define preempt_disable() \ + do { \ + if (ipipe_preempt_guard()) { \ + inc_preempt_count(); \ + barrier(); \ + } \ } while (0) + #define preempt_enable_no_resched() \ + do { \ + if (ipipe_preempt_guard()) { \ + barrier(); \ + dec_preempt_count(); \ + } \ } while (0) + #define preempt_check_resched() \ + do { \ + if (ipipe_preempt_guard()) { \ + if (unlikely(test_thread_flag(TIF_NEED_RESCHED))) \ + preempt_schedule(); \ + } \ } while (0) + #define preempt_enable() \ + do { \ + preempt_enable_no_resched(); \ + preempt_check_resched(); \ } while (0) #else *************** *** 402,407 **** */ schedule(); cpu_idle(); } --- 402,408 ---- */ schedule(); + ipipe_reset_stats(); cpu_idle(); } *************** *** 117,130 **** /* * No locking required for CPU-local interrupts: */ desc->handler->ack(irq); action_ret = handle_IRQ_event(irq, regs, desc->action); desc->handler->end(irq); return 1; } spin_lock(&desc->lock); desc->handler->ack(irq); /* * REPLAY is when Linux resends an IRQ that was dropped earlier * WAITING is used by probe to mark irqs that are being tested --- 128,145 ---- /* * No locking required for CPU-local interrupts: */ + #ifndef CONFIG_IPIPE desc->handler->ack(irq); + #endif /* CONFIG_IPIPE */ action_ret = handle_IRQ_event(irq, regs, desc->action); desc->handler->end(irq); return 1; } spin_lock(&desc->lock); + #ifndef CONFIG_IPIPE desc->handler->ack(irq); + #endif /* CONFIG_IPIPE */ /* * REPLAY is when Linux resends an IRQ that was dropped earlier * WAITING is used by probe to mark irqs that are being tested *************** *** 32,37 **** obj-$(CONFIG_GENERIC_HARDIRQS) += irq/ obj-$(CONFIG_CRASH_DUMP) += crash_dump.o obj-$(CONFIG_SECCOMP) += seccomp.o ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y) # According to Alan Modra , the -fno-omit-frame-pointer is --- 32,38 ---- obj-$(CONFIG_GENERIC_HARDIRQS) += irq/ obj-$(CONFIG_CRASH_DUMP) += crash_dump.o obj-$(CONFIG_SECCOMP) += seccomp.o + obj-$(CONFIG_IPIPE) += ipipe/ ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y) # According to Alan Modra , the -fno-omit-frame-pointer is --------------050808020003040805090604--