Bug 1551

Summary: replace frysk.proc.TaskObserver.Syscall.updateSyscallXXX with separate enter and exit events
Product: frysk Reporter: Andrew Cagney <cagney>
Component: generalAssignee: Jeff Johnston <jjohnstn>
Status: RESOLVED FIXED    
Severity: normal CC: pmuldoon, swagiaal
Priority: P1    
Version: unspecified   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Bug Depends on: 1846, 1847    
Bug Blocks: 1524, 1364    

Description Andrew Cagney 2005-10-26 15:48:34 UTC
The interface frysk.proc.TaskObserver.Syscall defines:

        /**
         * The Task is entering a system call.  Return Action.BLOCK to
         * block the task's further execution.
         */
        Action updateSyscallEnter (Task task);
        /**
         * The task is exiting a system call.  Return Action.BLOCK to
         * block the task's further execution.
         */
        Action updateSyscallExit (Task task);
        /**
         * XXX: The task is involved in a syscall.  Enter or exit, who can say?
         */
        Action updateSyscallXXX (Task task);

but only generates the last one.  The frysk core should track and notify the
client separatly of system call entry and exit.
Comment 1 Jeff Johnston 2005-11-07 23:01:57 UTC
Changes have been checked in to provide bubbling up of the syscall event type. 
Changes are still required in the kernel to provide this information to the
frysk core.

2005-11-07  Jeff Johnston  <jjohnstn@redhat.com>

        * SyscallEventInfo.java (ENTRY, EXIT, UNKNOWN): New constants.
        * Task.java (performSyscalled): Add additional syscallType
        parameter.
        * TaskState.java (processPerformSyscalled): Ditto.
        * TestLib.java: Change Wait.Observer classes to add
        additional parameter to syscallEvent member functions.
        * LinuxHost.java: Add additional parameter to Wait.Observer
        syscallEvent member function.
        * TestSyscall2.java: Lower repetition count to 5000 so
        test doesn't fail due to time limitation.

2005-11-07  Jeff Johnston  <jjohnstn@redhat.com>

        * Wait.java (syscallEvent): Add new syscall event type parameter.
        * cni/Wait.cxx (processStatus): For a syscall event, indicate
        the event type is unknown.

Comment 2 Jeff Johnston 2005-11-11 16:58:12 UTC
Last change has been reverted and model has been switched to use state
transitioning in the task.  The use of updateSyscallXXX interface has been
removed and the updateSyscallEnter and updateSyscallExit interfaces are now
being driven by TaskState notification.  Tests involving syscall have been
modified appropriately.