Some problems with the libbsd update
Joel Sherrill
joel at rtems.org
Thu Aug 23 13:40:36 UTC 2018
On Thu, Aug 23, 2018 at 12:15 AM, Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:
> On 23/08/18 01:13, Joel Sherrill wrote:
>
>>
>>
>> On Wed, Aug 22, 2018 at 6:00 PM, Chris Johns <chrisj at rtems.org <mailto:
>> chrisj at rtems.org>> wrote:
>>
>> On 22/08/2018 22:25, Sebastian Huber wrote:
>> > On 22/08/18 14:06, Joel Sherrill wrote:
>> >> On Wed, Aug 22, 2018, 6:47 AM Sebastian Huber
>> >> <sebastian.huber at embedded-brains.de
>> <mailto:sebastian.huber at embedded-brains.de>
>> >> <mailto:sebastian.huber at embedded-brains.de
>> <mailto:sebastian.huber at embedded-brains.de>>> wrote:
>> >>
>> >> It really is necessary to know how the other architectures
>> implement it. Some
>> >> may turn out to be easy. Others like Epiphany and new may never
>> matter.
>> >
>> > If the niche architectures don't use libbsd (which I guess is
>> the case), then
>> > there is no issue at all.
>> >
>>
>> Do we document what is supported and what is not supported?
>>
>>
>> This was largely the point of my response. We don't have a master list of
>> at least the following information:
>>
>> + Architectures that support SMP and tested to N cores
>> + Architectures that support TLS
>>
>
> We have the CPU Supplement.
You seem to be missing my point entirely. I am not saying the information
is not available at all. I am saying that there is no central place that
captures the status of SMP, TLS, libbsd for all architectures. This is
a marketing and project planning issue -- not a per-architecture
documentation issue.
>From a new user's perspective, where do they get the easy answer
to what's supported on what architectures?
>From the perspective of someone looking for a project, where's the
list of things that need to be done?
>From the perspective of considering deprecating an architecture,
support for TLS could be a factor. Without a master list to check
against, there is no easy answer.
Master list unfortunately needs to exist in two forms:
+ the marketing view which is likely a table.
+ the project planning view which is well served by a set
of tickets to add TLS per architecture.
>
>
> + Architectures that support libbsd
>>
>> A user can't determine what is usable to them in for at least those
>> features. We need a basic feature table of at least the above
>> for users.
>>
>
> I think a better question is what do I have to provide to get libbsd
> support? This is currently not that much. You just need the interrupt
> extensions API. After the update to a new FreeBSD version you probably need
> also TLS and maybe uni-processor architectures are no longer supported. You
> can still use the current libbsd.
>
>
>> Beyond that, I would consider TLS a hidden basic feature since I think
>> we now rely on it in some infrastructure pieces (language run-times?).
>> We don't have ticket(s) related to which architectures need it added.
>> And no notes on how to extract the details on what to do from GCC.
>> I randomly checked gcc for the nios2 and guess that this is the
>> register:
>>
>> (TP_REGNO 23) ; Thread pointer register
>>
>> How I am supposed to figure that out reliably, I am not sure.
>>
>> I checked the bfin and don't get any hits for tls/TLS or THREAD_LOCAL.
>> Perhaps it doesn't support it at all. Who knows?
>>
>
> You have to check the ABI document.
And as an odd note, I found what I think is the Blackfin ABI
and it doesn't even mention TLS or thread local.
https://docs.blackfin.uclinux.org/doku.php?id=toolchain:application_binary_interface
>
>
>
>>
>> Does libbsd have suitable checks on the built RTEMS to know it
>> cannot be supported?
>>
>>
>> Without the above table, I am not sure how. Curious to hear Sebastian's
>> answer.
>>
>>
>> FWIW I do not think the idea of "one size fits all" is workable. I
>> think a
>> number of architectures would benefit from a different smaller
>> networking stack.
>>
>>
>> +1
>>
>> We are in a position where we need begin to deprecate the old stack to
>> BSPs
>> that currently support it -- perhaps move it to a separate build tree. And
>> more seriously consider LWIP.
>>
>> An even when an architecture has the infrastructure, there is at least the
>> SPARC which I don't think have any Nexus devices
>> <https://maps.google.com/?q=ich+I+don't+think+have+any+Nexus+devices&entry=gmail&source=g>
>> or drivers for libbsd.
>>
>
> The generic nexus device which works well on SPARC. We used the libbsd on
> a SPARC project.
And how would one know that except by the accident of this thread.
Is network supported? I didn't see the greth in the three.
>
>
> --
> Sebastian Huber, embedded brains GmbH
>
> Address : Dornierstr. 4, D-82178 Puchheim, Germany
> Phone : +49 89 189 47 41-16
> Fax : +49 89 189 47 41-09
> E-Mail : sebastian.huber at embedded-brains.de
> PGP : Public key available on request.
>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20180823/8a2e1704/attachment-0002.html>
More information about the devel
mailing list