Subject: [FreeVMS] Re: New release 0.0.54
From: Roger Tucker (roger.tucker@mci.com)
Date: Tue Sep 14 2004 - 23:26:52 CEST
Thanks for your reply...
>>
>> You have to learn to walk before you can run...
>> So I decided to start slow and learn, by just looking at insque().
>> I don't think I understand what mycli() was trying to do.
>
>Seems you have understood it.
I couldn't figure out why you wrote mycli() over just using __cli().
Could you give me the basic idea here?
>> So what is wrong with this:
>So what do you think is wrong with it, apart from what you wrote?
>(I tested it with CONFIG_VMS, and it booted).
>(It may also work with uml (have not tested)).
I was just trying to understand why why not just use __save_flags(), __cli()
and __restore_flags().
>>Your insque might not work with SMP (but I am not sure).
Your right - The original VAX insque instruction and the AXP PAL code
version is non-interruptible
but is not SMP safe. To be SMP safe you must use the interlocked routines
insqhi(), etc.
Insqhi() use the low order bit of the forward pointer as a sort of
spin-lock.
This way you can have several insqhi()'s on different CPUs at the same time
as long as they are not on the same queue.
>>Your insque (and mine) does not return flags.
Your correct, I didn't want to have the overhead of returning flags when
they may not be needed.
>>Your insque (and mine) will only work in kernel mode (just tested), but it
does not matter much right now.
Correct. I didn't want the overhead of probing arguments and returning
flags when it's a routine used in kernel mode. I think a user-routine like
lib$insque() should probe args, and be atomic, return flags, etc.
Itanium also has no PAL code layer, so Itanium would be somewhat similar to
what needs to be done
on the IA-32 for interrupt handling and IPL, so we should copy that design
somewhat. This routine is called sys$pal_insque() for Itanium. See
http://www.decus.de/slides/sy2002/16_04/1C02.pdf page 11 and 12 are
interesting...
Do you have any more technical information on the VMS port to Itanium?
There is a little bit here, but not much internals:
http://h21007.www2.hp.com/dspp/files/unprotected/openvms/ovms_port_guide_v81
.PDF
I think, I'll do a insqti() that works without a static spin-lock and works
like the VAX/AXP version does as my next project to get my feet wet. Then
on to looking at what you are working on with IPL.
Thanks,
Roger Tucker
-- Liste de diffusion FreeVMS Pour se désinscrire : mailto:freevms-request@ml.free.fr?subject=unsubscribe
-- Liste de diffusion FreeVMS Pour se désinscrire : mailto:freevms-request@ml.free.fr?subject=unsubscribe
This archive was generated by hypermail 2b25 : Tue Sep 14 2004 - 23:27:09 CEST