From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Wed, 20 Feb 2002 12:21:15 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Wed, 20 Feb 2002 12:21:05 -0500 Received: from neouvielle.enseirb.fr ([147.210.18.138]:57533 "EHLO neouvielle.enseirb.fr") by vger.kernel.org with ESMTP id ; Wed, 20 Feb 2002 12:20:56 -0500 Message-ID: <3C73DB76.3A3E73F7@labri.fr> Date: Wed, 20 Feb 2002 18:23:02 +0100 From: Luciano Porto Barreto Organization: ENSEIRB / LaBRI / INRIA X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Linux Kernel Mailing List Subject: Garbage on current->state - linux 2.2 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hi, We are developing a package (named Bossa) to allow developers to safely and easily program their own schedulers. This package will be available as soon as we get a stable version and we plan to port it to more recent versions (2.4, 2.5). Schedulers react to events that are generated by the kernel at specific parts (eg, when a process blocks or unblocks). We have instrumented the kernel (2.2.16 non SMP) to notify such events. We added a field (pointer to a struct) at the end of task_struct (the usual approach). We also replaced schedule() by the following skeleton. schedule() { int s_state; event_struct *e; ... // bottom half processing ... while ((e = bossa_get_next_event()) != NULL) { need_to_switch = handle_event(e); } if (need_to_switch) { // selects the new process get_mmu_context(new); switch_to(old,new,old); } } However, sometimes I get garbage when reading current->state (eg, in wake_up_process() ). Such garbage appears after the switch_to. Any hints of what may be causing that ? Thanks, Luciano