Difference between revisions of "MAS Bug List"

From MCEWiki
(device driver)
 
(4 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
* dsp_ops: write_callback awakens the read sleeper before updating the command state.  That leads to occasional dsp_cmd hangups.
 
* dsp_ops: write_callback awakens the read sleeper before updating the command state.  That leads to occasional dsp_cmd hangups.
 +
* dsp_pci/dsp_driver: there are race conditions in the cleanup/remove procedure.  Interrupts aren't disabled until after higher levels de-init, meaning callbacks get sent into nowhere.
 
* Driver doesn't work well on realtime (in NFY/HST mode).  Oddly, non-realtime acquisitions at 400 Hz in this mode have been achieved.
 
* Driver doesn't work well on realtime (in NFY/HST mode).  Oddly, non-realtime acquisitions at 400 Hz in this mode have been achieved.
 
* Inform interval should be remembered, and updated whenever necessary. [ Careful with this, you have to watch for things like DSP resets / mode switches! ]
 
* Inform interval should be remembered, and updated whenever necessary. [ Careful with this, you have to watch for things like DSP resets / mode switches! ]
* If a command is interrupted without a timed-out reply being read, you have to cat /dev/mce_cmd0 before you can command the MCE. [ Resolved, error message is informative. ]
 
 
* Incorrect DSP packet size leads to DSP dropping the packet and no one knows to time out.
 
* Incorrect DSP packet size leads to DSP dropping the packet and no one knows to time out.
 
* bigphysarea causes system hang when driver calls it and "bigphysarea=NNNN" hasn't been given as a kernel option.  This is bigphysarea's fault, probably.
 
* bigphysarea causes system hang when driver calls it and "bigphysarea=NNNN" hasn't been given as a kernel option.  This is bigphysarea's fault, probably.
 +
* "EMPTY" command doesn't update the DSP; this is ok as long as acq_config is used for the next acquisition.  It is broken when the user is issuing "go rc# ret_dat" manually.
  
 
== mce_cmd / mce_library ==
 
== mce_cmd / mce_library ==
  
* qt_mode is not enabled automatically [ yes, it is. ]
 
 
* "cc fw_rev" expects at most 1 argument; this prevents us from doing, e.g. "rra cc fw_rev 0 1", which should be allowed.
 
* "cc fw_rev" expects at most 1 argument; this prevents us from doing, e.g. "rra cc fw_rev 0 1", which should be allowed.
* "reply outstanding" error effectively locks up the system.  mce_cmd should recover from it. [fixed in r170]
 
* mce_cmd '''exit code''' is not set when an error happens:  [fixed in r182]
 
  mandana@mce-act-a2:~/mce_script/trunk/script$ mce_cmd -x rb bc3 fw_rev
 
  This is mce_cmd version gamow/mas : 173
 
  Line  0 : error : mce library error -0x001000 : MCE replied with ERROR.
 
  Processed 0 lines, exiting.
 
  mandana@mce-act-a2:~/mce_script/trunk/script$ echo $? 
 
  0
 
  mandana@mce-act-a2:~/mce_script/trunk/script$ mce_cmd -x rb sys num_rows
 
  This is mce_cmd version gamow/mas : 173
 
  Line  0 : error : mce library error -0x001000 : MCE replied with ERROR.
 
  Processed 0 lines, exiting.
 
  mandana@mce-act-a2:~/mce_script/trunk/script$ echo $?
 
  0
 
The logfile in this instance shows:
 
  02/18/08 11:58:33 lib_mce : command 20205242 00090031 00000001 [00000000 x 3a] 20295272
 
  02/18/08 11:58:33 lib_mce : reply [command failed]  52424552 00090031 00080000 52434563 [00000000 x 38]
 
  
 
== dsp_cmd / dsp_library ==
 
== dsp_cmd / dsp_library ==
Line 44: Line 27:
  
 
then tried "maslog reopen" and that didn't help either.
 
then tried "maslog reopen" and that didn't help either.
 +
 +
[[Category:MAS]]

Latest revision as of 16:22, 30 August 2016

device driver

  • dsp_ops: write_callback awakens the read sleeper before updating the command state. That leads to occasional dsp_cmd hangups.
  • dsp_pci/dsp_driver: there are race conditions in the cleanup/remove procedure. Interrupts aren't disabled until after higher levels de-init, meaning callbacks get sent into nowhere.
  • Driver doesn't work well on realtime (in NFY/HST mode). Oddly, non-realtime acquisitions at 400 Hz in this mode have been achieved.
  • Inform interval should be remembered, and updated whenever necessary. [ Careful with this, you have to watch for things like DSP resets / mode switches! ]
  • Incorrect DSP packet size leads to DSP dropping the packet and no one knows to time out.
  • bigphysarea causes system hang when driver calls it and "bigphysarea=NNNN" hasn't been given as a kernel option. This is bigphysarea's fault, probably.
  • "EMPTY" command doesn't update the DSP; this is ok as long as acq_config is used for the next acquisition. It is broken when the user is issuing "go rc# ret_dat" manually.

mce_cmd / mce_library

  • "cc fw_rev" expects at most 1 argument; this prevents us from doing, e.g. "rra cc fw_rev 0 1", which should be allowed.

dsp_cmd / dsp_library

maslog_server

  • when idl was run and set_directory set a new data directory, log file disappeared and there was a period where commands where not

logged in yesterday/log and there was no today/log either.

  • 2007-12-03 MA: noticed that $MAS_DATA/log is empty and although commands go through nothing is logged. tried to reload mas.cfg:
 maslog_server -f /etc/mas.cfg 
 maslog_server - logging server for MAS
 load_config: key 'level' not found in config file
 listen_on_addr: failed to bind [98] (address already in use?)
 listener_listen: could not listen on address 'localhost:7894'

then tried "maslog reopen" and that didn't help either.