Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 May 1998 19:03:23 +0200 (MET DST)
From:      Joerg Schilling <schilling@fokus.gmd.de>
To:        mike@smith.net.au, schilling@fokus.gmd.de
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: cdrecord trouble on currnet
Message-ID:  <199805291703.TAA14897@sherwood.gmd.de>

next in thread | raw e-mail | index | archive | help
>From mike@antipodes.cdrom.com Fri May 29 18:26:05 1998

>> First some notes. You are discussing things related to cdrecord.
>> If you like to see your effort back in the main stream cdrecord, this
>> is definitely the wring mailing list.

>It's a good place to deal with the specifics of making cdrecord work on =

>FreeBSD though.  It's certainly unlikely that Peter would have been =

I see that this should be discussed on the FreeBSD list too, but if you like
to get help from me, you could not get it from freebsd-current, I am not
subscribed.

>The FreeBSD Posix implementation is still under development, and the =
>scheduler module is an optional addition (as allowed for under the =
>spec.).  Cdrecord doesn't make the required runtime check for the =
>presence of the desired functionality.

OK, but this is a new issue. It never has been nessecary before.
If other operating systems will start to behave similar, it would make
autoconfiguration a lot more complex.

>> >> > Bus error (core dumped)
>> =
>> If you are not able to analyze the core with adb and send a usable
>> bug description, I cannot help..

>The bus error is (in my case at any rate) due to a buffer overrun =
>elsewhere.  I haven't been able to ascertain the cause of this yet, but =
>there are indications that winding back the visible Posix interface =
>resolves the issue.

I am interested to find the reason for this core dump as it should not
happen. Some versions of HP-UX have the definition for POSIX RR and do not
implement it. On such HP_UX versions you usually get a warning about
the non existence of RR scheduling and cdrecord then uses nice(2).

I even may remove the warning if I an sure that no-one cares about the
non existing RR class.

I am testing cdrecord on all systems I can get hold of in a way that allows
testing to me (root access). As the SCSI implementations usually are not
sufficient, development and testing is mainly done on Solaris.

>We're not talking about "rubbish".  We're talking about an
>in-development implementation of the Posix environment.

OK, I understand. BTW: I would be happy if the user interface of the new
SCSI user transport calls would be easier to access and to understand.
In other words:

	I like to have the device files be present by  default so that
	programs like cdrecord onlu have to open the right file to get
	access to the device.

>> On SVr4 systems the _POSIX_PRIORITY_SCHEDULING is definitely worse
>> than the RT priocntl() interface and proicntl with RR scheduling is eve=
>n
>> available since the early days of SVr4. I cannot change the source in a=
> way
>> that only makes sure that nothing works after the change.

>This sounds like "rubbish" in SysV.

I I would not call this rubbish, it is available since 1988/1989 - years before
POSIX realtime enhanceements have beendefined and it grants you to be able to
run a process at a higher priority than you pager.

>> The scg drvier which I wrote in 1986 is based on this interface and
>> itself is the base for my portable SCSI user-level command transport
>> system. It should be faily easy to make a CAM adoption layer for scg.

>It was.  The real problems with scg have to do with the lack of visible
>documentation.  It is unclear how to do any sort of meaningful error
>handling, or whether this should be managed at a lower level.  Again,
>this is an issue I was postponing until I had established that
>everything else was going to behave and the interface had stabilised.

OK, here is what I send to Sun some weeks ago:

If you like to do a quick hack:

-	scsi_open() is currenltly not able to use anything but busno,target,lun
	You would get into trouble if you like to open /dev/rdsk/*

-	The interface funkctions are (currently):

	scsi_open()
		prepare a handle for later use with scsi_send()

	scsi_maxdma()
		return the max. amount of contiguous DMA on the current
		architecture

	scsi_getbuf(amt)
		allocate a (currently global - later open-specific)
		buffer of size 'amt' but not grater than scsi_maxdma()

	scsi_havebuf(busno)
		return TRUE/FALSE on whether the current machine
		includes a SCSI bus 'busno'

	scsi_fileno(bus, tgt, lun)
		return a filedescriptor to be used for the SCSI
		send ioctl. The filedesscriptor mus be the right
		one for bus/tgt/lun

	scsieset()
		as it says, need not to be implemented.

	scsi_send(f, struct scg_cmd *)
		Simulate the scg SCSI send command ioctl.
		returns: -1 usage error(e.g.  EINVAL ....)
			 0 All other

		see scgio.h for a description of the fields in the struct.

		cmd->resid is set to the DMA residual count
	
		cmd-error is set to one of:
			SCG_NO_ERROR		SCSI transport without error
						this is true for most failed 
						commands too !!!!

			SCG_FATAL		could not select target

			SCG_TIMEOUT		a SCSI timeout occured

			SCG_RETRYABLE		any other case

		cmd->ux_errno is set to the UNIX errno for a 
		failed command (note: parameter error are covered above)

		cmd->scb is set to the SCSI Status byte for the command
		note there is currently no sense status

		cmd->sense must be filled with auto-sense data if the
		comand fails.
		cmd->sense_count must be set to the # of valid sense bytes


/*--------------------------------------------------------------------------*/
I decided to make the SCSI ABI testuite available before I start to create
a separate SCSI library.

Jörg

 EMail:joerg@schily.isdn.cs.tu-berlin.de (home) Jörg Schilling D-13353 Berlin
       js@cs.tu-berlin.de		(uni)  If you don't have iso-8859-1
       schilling@fokus.gmd.de		(work) chars I am J"org Schilling
 URL:  http://www.fokus.gmd.de/usr/schilling   ftp://ftp.fokus.gmd.de/pub/unix

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805291703.TAA14897>