From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8633 invoked by alias); 18 Sep 2007 09:47:35 -0000 Received: (qmail 8625 invoked by uid 22791); 18 Sep 2007 09:47:35 -0000 X-Spam-Check-By: sourceware.org Received: from nz-out-0506.google.com (HELO nz-out-0506.google.com) (64.233.162.235) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 18 Sep 2007 09:47:31 +0000 Received: by nz-out-0506.google.com with SMTP id f1so1036437nzc for ; Tue, 18 Sep 2007 02:47:27 -0700 (PDT) Received: by 10.142.97.20 with SMTP id u20mr1306532wfb.1190108847160; Tue, 18 Sep 2007 02:47:27 -0700 (PDT) Received: by 10.142.90.12 with HTTP; Tue, 18 Sep 2007 02:47:27 -0700 (PDT) Message-ID: <256068a70709180247x32952e30xf3fee123073cd694@mail.gmail.com> Date: Tue, 18 Sep 2007 09:47:00 -0000 From: "=?ISO-8859-1?Q?I=F1igo_Barrera?=" To: ecos-discuss@ecos.sourceware.org In-Reply-To: <256068a70709180241u29a8d562g42c4a8f068f66c67@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <256068a70709180241u29a8d562g42c4a8f068f66c67@mail.gmail.com> X-IsSubscribed: yes Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: [ECOS] POSIX & SMP compatibility and other problems in a Leon3 platform X-SW-Source: 2007-09/txt/msg00108.txt.bz2 Hi, I am using eCos on a Leon3-based SMP system, with a modified interrupt controller, so that I had to adapt the interrupt and SMP-related HAL functions. I am also using the POSIX compatibility layer on top. I am running into several problems, and before digging too much (more) into the kernel code, I'd like to ask some questions to the mailing list, in case someone has already run into them before (sorry if they seem random, I'm trying to gather everything into a single e-mail): 1) I am running into a lot of problems when using the POSIX timers with the real system, mainly deadlocks related to timer list corruption or scheduler lock going out of sync. This didn't use to happen in the simulations, but with the real system (and the real timings) it's happening all the time. Though it all might be related to the new interrupt controller implementation, I just wanted to ask if someone has used the POSIX layer (specifically timers) on a SMP platform (specifically a Sparc or Leon platform), and whether there were some problems or issues I should be aware of. 2) with the new interrupt controller, several SMP (CPU communication) interrupts can get grouped, and I have found that I had to prevent consecutive calls to "reschedule" and "timeslice" inside the same DSR, otherwise the thread list got corrupted. Is that normal? Or should it work, and it's a sympthom of other (maybe timing-related) problem? 3) to be able to use a big number of interrupts, they are grouped into interrupt banks, and I need to decode the real interrupt inside the ISR, and post the DSR for the decoded interrupt. This is maybe a basic question, but can I post the DSR inside the ISR, or do I need to remember the correct DSR and do it in the interrupt_end() function? In another words, is it necessary to lock the scheduler before posting the DSR? (I have tried both implementations and I can't see any difference apart from timing itself). 4) has someone adapted eCos for Leon3 to a "slow" interrupt controller (explicit acknowledge, CPU message destination selection by masking), than can share the experience, like timer or SMP CPU message interrupt adaptation, or workarounds for the different timing misadjustments? Thank you very much in advance for your help, Inigo. -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss