About FreeBSD syscall usage

View: New views
4 Messages — Rating Filter:   Alert me  

About FreeBSD syscall usage

by Yan, Yeqing :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi:

I’m from Intel China. Our project use FreeBSD 7.0. I have some question about syscall usage but I think mail to the wrong address before.

Is there having any doc or example about how to use these syscall?



kse_exit

kse_wakeup

kse_create

kse_thr_interrupt

kse_release

kse_switchin

I read $man kse, but I can not find any example about how to use it. I write some test codes to call these function but all these codes are failed.



mac_syscall

I read $man 3 mac, but I can not find the usage about mac_syscall function.



thr_create

thr_suspend

thr_kill2



By the way, it is said “I think that KSE was used in 5.x and 6.x and then dropped in favor of a 1:1 threading model when 7.0 was released”

Does it mean the KSE syscall can be removed from FreeBSD 7.0?



Thank you very much!



-----Original Message-----
From: Kevin Kinsey [mailto:kdk@...]
Sent: 2009年10月21日 22:18
To: Yan, Yeqing
Cc: freebsd-questions@...
Subject: Re: Question about FreeBSD syscall usage



Yan, Yeqing wrote:

> Hi:

> I'm from Intel China. Our project use FreeBSD 7.0

 > and I have some questions about the FreeBSD syscall.

> I don't know how to use these syscall below.

> Is there having some doc or example about how to use these syscall?

>

> kse_exit

> kse_wakeup

> kse_create

> kse_thr_interrupt

> kse_release

> kse_switchin

>

> mac_syscall

>

> thr_create

> thr_suspend

> thr_kill2

>

> Thank you very much!

>

> Best Regards

> Yan, Yeqing



Hello Yeqing,



You might want to write to "hackers@..." ...

... some of those guys *wrote* these syscalls.  However,

since it's a question, I'll take a stab at it.



Have you read:



$man kse

$man 3 mac

$man libthr  ?



Also, see www.freebsd.org/kse/



However, I think that KSE was used in 5.x and 6.x

and then dropped in favor of a 1:1 threading model

when 7.0 was released (I'm sure some "hacker@" can

correct this information if I'm wrong).



I hope this is helpful to you.



Kevin Kinsey


Best Regards

Yan, Yeqing


_______________________________________________
freebsd-hackers@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@..."

Re: About FreeBSD syscall usage

by John Baldwin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thursday 22 October 2009 4:20:32 am Yan, Yeqing wrote:
> Hi:
>
> I’m from Intel China. Our project use FreeBSD 7.0. I have some question
about syscall usage but I think mail to the wrong address before.

>
> Is there having any doc or example about how to use these syscall?
>
>
>
> kse_exit
>
> kse_wakeup
>
> kse_create
>
> kse_thr_interrupt
>
> kse_release
>
> kse_switchin

These are used internally to implement pthreads when using KSE.  Probably the
only useful documentation would be the source for libkse.

> I read $man kse, but I can not find any example about how to use it. I write
some test codes to call these function but all these codes are failed.
>
>
>
> mac_syscall
>
> I read $man 3 mac, but I can not find the usage about mac_syscall function.

This one I am not sure of.

> thr_create
>
> thr_suspend
>
> thr_kill2

These are used by libpthread to implement pthreads (libthr in < 7.x).  The
best documentation for these would be the source to libpthread as well.

> By the way, it is said “I think that KSE was used in 5.x and 6.x and then
dropped in favor of a 1:1 threading model when 7.0 was released”
>
> Does it mean the KSE syscall can be removed from FreeBSD 7.0?

It has been removed entirely from 8.0.  It is still present in 7, but it is
deprecated and not the default.

--
John Baldwin
_______________________________________________
freebsd-hackers@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@..."

Re: About FreeBSD syscall usage

by Stanislav Sedov-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thu, 22 Oct 2009 16:20:32 +0800
"Yan, Yeqing" <yeqing.yan@...> mentioned:

> kse_exit
>
> kse_wakeup
>
> kse_create
>
> kse_thr_interrupt
>
> kse_release
>
> kse_switchin
>
> I read $man kse, but I can not find any example about how to use it. I write some test codes to call these function but all these codes are failed.
>
>
>
> mac_syscall
>
> I read $man 3 mac, but I can not find the usage about mac_syscall function.
>
>
>
> thr_create
>
> thr_suspend
>
> thr_kill2
>
I fear there's no documentation on these syscalls exists.  So for use information
you'll have to refer to the actual source code of these syscalls/or and libc/libthr
source code which makes uses of them.
 
>
> By the way, it is said “I think that KSE was used in 5.x and 6.x and then dropped in favor of a 1:1 threading model when 7.0 was released”
>
> Does it mean the KSE syscall can be removed from FreeBSD 7.0?
>

libkse (M:N threading) was default threading library on FreeBSD versions prior to
7.0, and the default has changed to libthr (1:1 threading in FreeBSD 7).  libkse
was completely removed in FreeBSD 8, but it is still functional on FreeBSD 7.x.

--
Stanislav Sedov
ST4096-RIPE


attachment0 (817 bytes) Download Attachment

Re: About FreeBSD syscall usage

by Julian Elischer :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Stanislav Sedov wrote:

> On Thu, 22 Oct 2009 16:20:32 +0800
> "Yan, Yeqing" <yeqing.yan@...> mentioned:
>
>> kse_exit
>>
>> kse_wakeup
>>
>> kse_create
>>
>> kse_thr_interrupt
>>
>> kse_release
>>
>> kse_switchin
>>
>> I read $man kse, but I can not find any example about how to use it. I write some test codes to call these function but all these codes are failed.
>>

The kse man page documents the syscalls but they are intended to be
used only by the libkse library.
there was some early test code in /usr/src/tools/KSE but it probably
doesn't eve n compile any more.


>>
>>
>> mac_syscall
>>
>> I read $man 3 mac, but I can not find the usage about mac_syscall function.
>>
>>
>>
>> thr_create
>>
>> thr_suspend
>>
>> thr_kill2

Once again, these calls are meant to be only accessed from
the threading library.

(though man pages should be written)


>>
>
> I fear there's no documentation on these syscalls exists.  So for use information
> you'll have to refer to the actual source code of these syscalls/or and libc/libthr
> source code which makes uses of them.
>  
>> By the way, it is said “I think that KSE was used in 5.x and 6.x and then dropped in favor of a 1:1 threading model when 7.0 was released”
>>
>> Does it mean the KSE syscall can be removed from FreeBSD 7.0?


it will remain oin all 7.x kernels but is removed from 8.x

>>
>
> libkse (M:N threading) was default threading library on FreeBSD versions prior to
> 7.0, and the default has changed to libthr (1:1 threading in FreeBSD 7).  libkse
> was completely removed in FreeBSD 8, but it is still functional on FreeBSD 7.x.

KSE based threading, while theoretically useful introduces a number of
annoying complications to the kernel and was "holding up" other
developement. Since Linux has gone with 1:1 threading, nearly all
applications a re now written with 1:1 threading in mind so it made
little sense to maintain all the extra complexity for no reason.

>

_______________________________________________
freebsd-hackers@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@..."