fix formatting for previous commit;
Adjust entry for linux-DVB support
This commit is contained in:
parent
4e23ae9366
commit
f08789c7e1
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=33946
1 changed files with 58 additions and 38 deletions
|
@ -15,7 +15,7 @@ Ideas//EN"
|
||||||
<ideas>
|
<ideas>
|
||||||
<cvs:keywords xmlns:cvs="http://www.FreeBSD.org/XML/CVS" version="1.0">
|
<cvs:keywords xmlns:cvs="http://www.FreeBSD.org/XML/CVS" version="1.0">
|
||||||
<cvs:keyword name="freebsd">
|
<cvs:keyword name="freebsd">
|
||||||
$FreeBSD: www/en/projects/ideas/ideas.xml,v 1.111 2009/03/14 10:18:18 rwatson Exp $
|
$FreeBSD: www/en/projects/ideas/ideas.xml,v 1.112 2009/03/15 14:13:43 luigi Exp $
|
||||||
</cvs:keyword>
|
</cvs:keyword>
|
||||||
</cvs:keywords>
|
</cvs:keywords>
|
||||||
|
|
||||||
|
@ -556,37 +556,51 @@ these buses to be a subclass of this new base class.</p>
|
||||||
</desc>
|
</desc>
|
||||||
</idea>
|
</idea>
|
||||||
|
|
||||||
<idea id="kernel-linuxemu" class="soc">
|
<idea id="kernel-dvb" class="soc">
|
||||||
<title>Kernel support for linux device drivers</title>
|
<title>Kernel support for linux DVB device drivers</title>
|
||||||
|
|
||||||
<desc>
|
<desc>
|
||||||
<p><strong>Technical contact</strong>: <a href="mailto:luigi@FreeBSD.org">Luigi Rizzo</a></p>
|
<p><strong>Technical contact</strong>: <a href="mailto:luigi@FreeBSD.org">Luigi Rizzo</a></p>
|
||||||
|
|
||||||
<p>Recently, a project was started to compile linux device drivers
|
<p>In early 2007 we started a project was started to support the
|
||||||
on FreeBSD through an in-kernel emulation layer, which
|
building of linux device drivers on FreeBSD.
|
||||||
|
This was done through an in-kernel emulation layer, which
|
||||||
implements part of the linux kernel API on top of the FreeBSD
|
implements part of the linux kernel API on top of the FreeBSD
|
||||||
kernel API. The initial implementation was good enough to
|
kernel API. The initial implementation was good enough to
|
||||||
support a few USB webcam drivers, and is documented
|
support a few USB webcam drivers, and is documented
|
||||||
<a
|
<a
|
||||||
href="http://info.iet.unipi.it/~luigi/FreeBSD/linux_bsd_kld.html">here</a>.</p>
|
href="http://info.iet.unipi.it/~luigi/FreeBSD/linux_bsd_kld.html">here</a>.
|
||||||
|
The code is actually available as a port, devel/linux-kmod-compat,
|
||||||
|
and a popular driver that uses this infrastructure is
|
||||||
|
multimedia/linux-gspca-kmod .
|
||||||
|
</p>
|
||||||
|
<p>We would like to use a similar approach to add support
|
||||||
|
for DVB devices, which are widely supported in Linux
|
||||||
|
but not in FreeBSD. In particular we expect the project to provide,
|
||||||
|
within the FreeBSD kernel, enough of linux compatibility to build
|
||||||
|
the core components of the drivers/media/ linux kernel, and then
|
||||||
|
a few device drivers including one for a PCI DVB card (e.g.
|
||||||
|
saa7134-based).
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>The goal of this project is to extend this emulation layer
|
<p>Before the start of the project, a Summer of Code applicant is expected to
|
||||||
to cover more of the linux kernel API. Two areas that need
|
i) become familiar with the approach used by linux-kmod-compat;
|
||||||
further work are the API used by network/communication device drivers (e.g.
|
ii) set up a proper test environment, with a couple of DVB devices
|
||||||
many USB wired and wireless device drivers; telephony cards), and the API used
|
supported by linux, and a working linux installation so that
|
||||||
by memory-mapped devices and drivers (e.g. analog or DVB video
|
one can compare results;
|
||||||
acquisition cards, both USB and PCI).</p>
|
iii) become familiar with the architecture of the linux code in
|
||||||
|
drivers/media.
|
||||||
<p>A Summer of Code applicant would be required to choose a significant set of
|
<br/>
|
||||||
extensions to the existing work (e.g. one of those indicated
|
Probably the attention should be focused in PCI devices, because
|
||||||
above), and select at least two linux device drivers to be
|
at this stage the USB stack is in a transition phase and would
|
||||||
ported to FreeBSD using the newly implemented functions.</p>
|
pose some additional difficulties.
|
||||||
|
</p>
|
||||||
<p>Before the start of the project a Summer of Code applicant is expected to
|
<p>
|
||||||
have studied the above URL and understood the emulation technique
|
Expected results are a working porting infrastructure, a working
|
||||||
used, and to have/acquire access to at least some of the hardware
|
linux-dvb-kmod device driver, and a working application to demonstrate
|
||||||
involved, so that actual functionality tests can be performed
|
that the driver is working as expected. We suggest to look at
|
||||||
in addition to the compile tests.</p>
|
"kaffeine" for which a FreeBSD port already exists.
|
||||||
|
</p>
|
||||||
</desc>
|
</desc>
|
||||||
</idea>
|
</idea>
|
||||||
|
|
||||||
|
@ -722,23 +736,20 @@ href="http://info.iet.unipi.it/~luigi/FreeBSD/linux_bsd_kld.html">here</a>.</p>
|
||||||
</desc>
|
</desc>
|
||||||
</idea>
|
</idea>
|
||||||
|
|
||||||
<idea id="psched">
|
<idea id="psched" class="soc">
|
||||||
<title>Geom-based Disk Schedulers</title>
|
<title>Geom-based Disk Schedulers</title>
|
||||||
|
|
||||||
<desc>
|
<desc>
|
||||||
<p><strong>Technical contact</strong>: <a
|
<p><strong>Technical contact</strong>: <a
|
||||||
href="mailto:luigi@freebsd.org">Luigi Rizzo</a></p>
|
href="mailto:luigi@freebsd.org">Luigi Rizzo</a></p>
|
||||||
<p><strong>References</strong>: <a
|
|
||||||
href="http://wiki.freebsd.org/moin.cgi/Hybrid">The Pluggable Disk
|
|
||||||
Schedulers SoC project</a>, <a
|
|
||||||
href="http://www.happyemi.org/hybrid/">Patches</a></p>
|
|
||||||
<p>In a 2005 GSoC project, "Pluggable Disk Schedulers", Emiliano
|
<p>In a 2005 GSoC project, "Pluggable Disk Schedulers", Emiliano
|
||||||
Mennucci explored the feasibility of pluggable disk schedulers
|
Mennucci explored the feasibility of pluggable disk schedulers
|
||||||
for FreeBSD. The project was successful, but we could not explore
|
for FreeBSD. The project was successful, but we could not explore
|
||||||
certain approaches (e.g. "anticipation", where requests are delayed
|
certain approaches (e.g. "anticipation", where requests are delayed
|
||||||
hoping that some future ones can served without a seek) due to
|
hoping that some future ones can served without a seek) due to
|
||||||
architectural limitations the kernel had at the time.
|
architectural limitations the kernel had at the time.
|
||||||
<p>
|
</p>
|
||||||
|
<p>
|
||||||
Since then, the GEOM infrastructure has become available on FreeBSD
|
Since then, the GEOM infrastructure has become available on FreeBSD
|
||||||
for interacting with disk I/O requests. GEOM has enabled us to
|
for interacting with disk I/O requests. GEOM has enabled us to
|
||||||
work on disk schedulers in a much more flexible way, allowing a
|
work on disk schedulers in a much more flexible way, allowing a
|
||||||
|
@ -746,7 +757,8 @@ href="http://info.iet.unipi.it/~luigi/FreeBSD/linux_bsd_kld.html">here</a>.</p>
|
||||||
Fabio Checconi, we have developed a prototype
|
Fabio Checconi, we have developed a prototype
|
||||||
implementation of some anticipatory schedulers, see
|
implementation of some anticipatory schedulers, see
|
||||||
<a href="http://info.iet.unipi.it/~luigi/FreeBSD/#geom_sched">GEOM_SCHED</a>.
|
<a href="http://info.iet.unipi.it/~luigi/FreeBSD/#geom_sched">GEOM_SCHED</a>.
|
||||||
<p>
|
</p>
|
||||||
|
<p>
|
||||||
GEOM_SCHED works within the geom layer, i.e. above the device driver
|
GEOM_SCHED works within the geom layer, i.e. above the device driver
|
||||||
where queueing of requests may actually occur. The way GEOM_SCHED
|
where queueing of requests may actually occur. The way GEOM_SCHED
|
||||||
does scheduling is by limiting the number of outstanding requests
|
does scheduling is by limiting the number of outstanding requests
|
||||||
|
@ -757,18 +769,26 @@ href="http://info.iet.unipi.it/~luigi/FreeBSD/linux_bsd_kld.html">here</a>.</p>
|
||||||
(as it needs to be replicated in all drivers) but it may be
|
(as it needs to be replicated in all drivers) but it may be
|
||||||
an interesting thing to do e.g. for some popular device drivers
|
an interesting thing to do e.g. for some popular device drivers
|
||||||
such as ATA.
|
such as ATA.
|
||||||
<p>
|
</p>
|
||||||
|
<p>
|
||||||
The proposed SoC work can address one or more of the following
|
The proposed SoC work can address one or more of the following
|
||||||
aspects:
|
aspects:
|
||||||
i) implement suitable classifiers for
|
<ul>
|
||||||
disk requests; ii) implement techniques for the auto-tuning of
|
<li>implement suitable classifiers for disk requests;</li>
|
||||||
the scheduler parameters; iii) measure the performance implications
|
<li>implement techniques for the auto-tuning of
|
||||||
|
the scheduler parameters;</li>
|
||||||
|
<li>measure the performance implications
|
||||||
of doing scheduling above the device driver, and possibly design
|
of doing scheduling above the device driver, and possibly design
|
||||||
and implement a suitable mechanism to push the GEOM_SCHED
|
and implement a suitable mechanism to push the GEOM_SCHED
|
||||||
module within the device driver itself.
|
module within the device driver itself.</li>
|
||||||
<p>
|
</ul>
|
||||||
Ultimately, we expect to end up with a production quality subsystem
|
Ultimately, we expect to end up with a production quality subsystem
|
||||||
for use in FreeBSD.
|
for use in FreeBSD.
|
||||||
|
</p>
|
||||||
|
<p><strong>References</strong>: <a
|
||||||
|
href="http://wiki.freebsd.org/moin.cgi/Hybrid">The Pluggable Disk
|
||||||
|
Schedulers SoC project</a>, <a
|
||||||
|
href="http://www.happyemi.org/hybrid/">Patches</a></p>
|
||||||
|
|
||||||
<p><strong>Requirements</strong>:</p>
|
<p><strong>Requirements</strong>:</p>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
Loading…
Reference in a new issue