Commit Graph

128508 Commits

Author SHA1 Message Date
Joel Dahl
886e53ca9a - Update the Runtime Configuration, FILES and DIAGNOSTICS sections to
the new world order.
-  Use our standard section 4 SYNOPSIS.
-  Minor nits.

Reviewed by:	brueffer, ariff
2006-11-26 12:27:02 +00:00
Ariff Abdullah
a580b31a54 Welcome to Once-a-year Sound Mega-Commit. Enjoy numerous updates and fixes
in every sense.

General
-------

- Multichannel safe, endian safe, format safe
   * Large part of critical pcm filters such as vchan.c, feeder_rate.c,
     feeder_volume.c, feeder_fmt.c and feeder.c has been rewritten so that
     using them does not cause the pcm data to be converted to 16bit little
     endian.
   * Macrosses for accessing pcm data safely are defined within sound.h in
     the form of PCM_READ_* / PCM_WRITE_*
   * Currently, most of them are probably limited for mono/stereo handling,
     but the future addition of true multichannel will be much easier.

- Low latency operation
  * Well, this require lot more works to do not just within sound driver,
    but we're heading towards right direction. Buffer/block sizing within
    channel.c is rewritten to calculate precise allocation for various
    combination of sample/data/rate size. As a result, applying correct
    SNDCTL_DSP_POLICY value will achive expected latency behaviour simmilar
    to what commercial 4front driver do.
  * Signal handling fix. ctrl+c of "cat /dev/zero > /dev/dsp" does not
    result long delay.
  * Eliminate sound truncation if the sound data is too small.
    DIY:
      1) Download / extract
         http://people.freebsd.org/~ariff/lowlatency/shortfiles.tar.gz
      2) Do a comparison between "cat state*.au > /dev/dsp" and
         "for x in state*.au ; do cat $x > /dev/dsp ; done"
         - there should be no "perceivable" differences.
    Double close for PR kern/31445.

  CAVEAT: Low latency come with (unbearable) price especially for poorly
          written applications. Applications that trying to act smarter
	  by requesting (wrong) blocksize/blockcount will suffer the most.
	  Fixup samples/patches can be found at:
	  http://people.freebsd.org/~ariff/ports/

- Switch minimum/maximum sampling rate limit to "1" and "2016000" (48k * 42)
  due to closer compatibility with 4front driver.
  Discussed with: marcus@ (long time ago?)

- All driver specific sysctls in the form of "hw.snd.pcm%d.*" have been
  moved to their own dev sysctl nodes, notably:
  hw.snd.pcm%d.vchans -> dev.pcm.%d.vchans
  Bump __FreeBSD_version.

Driver specific
---------------

- Ditto for sysctls.

- snd_atiixp, snd_es137x, snd_via8233, snd_hda
  * Numerous cleanups and fixes.
  * _EXPERIMENTAL_ polling mode support using simple callout_* mechanisme.
   This was intended for pure debugging and latency measurement, but proven
   good enough in few unexpected and rare cases (such as problematic shared
   IRQ with GIANT devices - USB). Polling can be enabled/disabled through
   dev.pcm.0.polling. Disabled by default.

- snd_ich
  * Fix possible overflow during speed calibration. Delay final
    initialization (pcm_setstatus) after calibration finished.
    PR: kern/100169
    Tested by: Kevin Overman <oberman@es.net>
  * Inverted EAPD for few Nec VersaPro.
    PR: kern/104715
    Submitted by: KAWATA Masahiko <kawata@mta.biglobe.ne.jp>

Thanks to various people, notably Joel Dahl, Yuriy Tsibizov, Kevin Oberman,
those at #freebsd-azalia @ freenode and others for testing.

Joel Dahl will do the manpage update.
2006-11-26 12:24:06 +00:00
Alexander Leidinger
4bc4dc4c4b MFP4 (109713):
Add OSS_GETVERSION ioctl for compatibility.

Some ports expect this and fail to compile on -current ATM.

Submitted by:	ryanb
2006-11-26 11:55:48 +00:00
Poul-Henning Kamp
a5d7a1aed7 Add entry and no-UHID quirk for I-tuner networks USB-LCD 2x20 as found
in http://www.mini-box.com/Mini-Box-M200-LCD
2006-11-26 11:07:37 +00:00
Kip Macy
a06bcaf96b - remove dead code
- revert a previous change to pmap_enter where we
  could skip invalidates on unmanaged pages
2006-11-26 07:54:44 +00:00
Warner Losh
1410101451 devsw.9 removed 2006-11-26 06:52:54 +00:00
Tim Kientzle
43baed1581 Unbreak libarchive on arm. Two parts of libarchive relied on a
traditional shortcut of defining on-disk layouts using structures of
character arrays. Unfortunately, as recently discussed on cvs-all@,
this usage is not actually sanctioned by the standards and
specifically fails on GCC/arm (unless your data structures happen to
be "naturally aligned").

The new code defines offsets/sizes for data fields and accesses
them using explicit pointer arithmetic, instead of casting to
a structure and accessing structure fields.  In particular,
the new code is now clean with WARNS=6 on arm.

MFC after: 14 days
2006-11-26 05:39:28 +00:00
Kip Macy
548d785ec5 add interrupt cookie hypervisor functions 2006-11-26 04:37:49 +00:00
Ruslan Ermilov
ca0fa71fde Tweak the comment about mapping a kernel using large pages. 2006-11-25 23:00:46 +00:00
Warner Losh
f0bab87823 devsw() was removed by phk:
revision 1.199
	date: 2004/09/24 08:30:57;  author: phk;  state: Exp;  lines: +0 -1
	Remove the cdevsw() function which is now unused.

(the log is wrong, it was really devsw that was removed).

# we really need to actually document the functions in sys/conf.h as well
# as things like d_open...
2006-11-25 22:36:09 +00:00
Warner Losh
0cc1987013 Clarify what non-zero return values mean. 2006-11-25 22:34:01 +00:00
Ruslan Ermilov
f9a047a1b7 - In nd6_rtrequest(), when caching an rtentry, don't forget
to add a reference to it; otherwise, we could later access
  a freed memory.  This is believed to fix panics some users
  were observing when running route6d(8), and is similar to
  the fix in sys/netinet/if_ether.c,v 1.139 by glebius@.

PR:		kern/93910, kern/105437
Testing by:	Wojciech Puchar (still ongoing)

- Add rtentry locking to nd6_output() similar to rt_check().

MFC after:	4 days
2006-11-25 20:38:56 +00:00
Christian Brueffer
950f6d64e4 Grr, fix typo introduced in the previous commit. 2006-11-25 12:12:11 +00:00
Colin Percival
bce02f9836 Three minor bug fixes:
1. When downloading metadata files, make sure we only download each
file once; without this fix, "freebsd-update fetch" will fail the first
time it is run if there have been no updates yet for the installed
release.
2. If the FOO kernel is installed in /boot/kernel instead of /boot/FOO
and the /boot/FOO directory does not exist, don't try to update
/boot/FOO.  This is an issue only where an update involves adding a new
kernel module.
3. When removing files and directories, operate in reverse
lexographical order, in order to ensure that files are removed before
the directory which contains them.

MFC after:	3 days
2006-11-25 07:30:12 +00:00
Kip Macy
44d22a127a The mountroot prompt will drop into ddb if we don't recognize error codes from
getchar correctly - we also need to check for HUP and BREAK
2006-11-25 06:29:46 +00:00
Sam Leffler
0553a01f53 mark tx/rx descriptors COHERENT; we do not sync changes so on
architectures like arm this is necessary

MFC after:	1 month
2006-11-24 22:45:26 +00:00
Christian S.J. Peron
5cd3e3457f Make sure we do not sleep while locks are held. Change the malloc(9)
flags from M_WAITOK to M_NOWAIT. This should not cause any problems
since the calling code appears to properly handle failed allocations.

Discussed with:	kmacy
2006-11-24 22:14:37 +00:00
Kip Macy
f523369da9 kernel will not compile without genclock, thus move to DEFAULTS 2006-11-24 20:56:43 +00:00
Kip Macy
4305064c65 - implement remaining pci functions
- fix build errors
2006-11-24 20:47:29 +00:00
Warner Losh
c572890195 Add instructions for creating a ramdisk root image. These likely need
to be augmented with instructions for those platforms that have
/boot/loader.
2006-11-24 18:53:45 +00:00
Kip Macy
234e688e0c Implement mmu functions and cpu_mondo_send
fix some more kernel compile fallout
2006-11-24 18:50:56 +00:00
Kip Macy
a137217d3f remove unused reference to tsb pa 2006-11-24 18:36:04 +00:00
Tim Kientzle
97fc4d2db7 Connect four new files to the build.
PR: bin/86742
2006-11-24 16:35:54 +00:00
Pav Lucistnik
e34e5860ac Remove reference to a man page of pib, an obscure third-party tool, whose port
does not install any manpages.

MFC after:	3 days
2006-11-24 14:47:25 +00:00
Warner Losh
1dfbd9c2f9 Make it clear that the device name may contain '/' characters to place
a device in a subdirectory.  Also explicitly state that the name is
constructed using fmt like printf would print it.

MFC After: 3 days
2006-11-24 13:10:30 +00:00
Maxim Konovalov
bb963fea62 o Xr sendfile(2). 2006-11-24 12:00:02 +00:00
Robert Watson
c2a9c542a9 Push Giant a bit further off the NFS server in a number of straight
forward cases by converting from unconditional acquisition of Giant
around vnode operations to conditional acquisition:

- Remove nfsrv_access_withgiant(), and cause nfsrv_access() to now
  assert that Giant will be held if it is required for the vnode.

- Add nfsrv_fhtovp_locked(), which will drop the NFS server lock if
  required, and modify nfsrv_fhtovp() to conditionally acquire
  Giant if required.

- In the VOP's not dealing with more than one vnode at a time (i.e.,
  not involving a lookup), conditionally acquire Giant.

This removes Giant use for MPSAFE file systems for a number of quite
important RPCs, including getattr, read, write.  It leaves
unconditional Giant acquisitions in vnode operations that interact
with the name space or more than one vnode at a time as these
require further work.

Tested by:	kris
Reviewed by:	kib
2006-11-24 11:53:16 +00:00
Yaroslav Tykhiy
df19774d2f Note that, thanks to the work by Alan Cox et al, some arch'es
don't need sendfile() buffers any more.

The report on the work referenced can be found at
http://usenix.org/events/usenix05/tech/general/elmeleegy.html

MFC after:	1 week
2006-11-24 11:44:19 +00:00
David Xu
f08e1bf682 Eliminate atomic operations in thread cancellation functions, it should
reduce overheads of cancellation points.
2006-11-24 09:57:38 +00:00
Xin LI
0ff56caba8 Make use of mk/ files from a fresh source tree, rather than
the currently installed ones.  This makes it possible to use
the script against Makefiles that uses bsd.own.mk on an old
system.

Submitted by:	bushman
2006-11-24 09:07:26 +00:00
Kip Macy
217112e529 comment all remaining documented hypervisor functions except for msi
implement performance counter functions
2006-11-24 07:49:15 +00:00
Kip Macy
01e461dcc2 document and comment all functions outside of MMU and MSI services
from those, implement all those whose arguments don't require save/restore
2006-11-24 07:11:24 +00:00
Doug Barton
4b15724254 I mistakenly committed the wrong version of my patch (sorry).
s/O2/O2Micro, as that's how they seem to prefer it, and remove
what is now one blank line too many.
2006-11-24 06:51:49 +00:00
Ruslan Ermilov
73eee24650 - style: use =' instead of +=' for initial assignments.
- don't add generated sources' objects to OBJS explicitly;
  GENSRCS is part of SRCS so they were already in OBJS.
2006-11-24 06:38:11 +00:00
Tim Kientzle
6770b130f1 Fill in a couple of missing casts: clarify one narrowing conversion
and correct the use of unary minus with an unsigned value.  (The unary
minus here is actually being used as a bitwise operation, which is
unusual enough to deserve a clarifying cast.)
2006-11-24 05:48:04 +00:00
Tim Kientzle
4f27e91611 A few minor clarifications and corrections. 2006-11-24 05:41:16 +00:00
Tim Kientzle
b4e244d1a3 A few minor corrections to the libarchive.3 overview page. 2006-11-24 05:37:38 +00:00
Tim Kientzle
73a2505465 Document the new _open_FILE() and _open_memory() interfaces.
PR: bin/86742
2006-11-24 05:34:23 +00:00
Kip Macy
17b84f855f - Comment most of the remaining hypercalls in hcall.S
- implement hypercalls returning a single value
- start fixing the fallout of the recent changes needed to get
  the kernel compiling again
2006-11-24 05:27:49 +00:00
John Birrell
80f498e559 Fix another parallel make problem with the generated make file.
Define the xxx_OBJPATHS earlier and then use it in the xxx_make
target because each obj is actually made through that.

This allows the crunch to work with -j32 on sun4v.

The makefile generated is still poor, though. It really shouldn't use
the general 'make all' to do the submakes in the app directories being
crunched because each of those objects is listed as a dependency in
the generated crunch makefile. Doing that really requires a unique rule
to generate them.
2006-11-24 03:56:25 +00:00
Kip Macy
16c87dea9e add comments for cpu configuration hypervisor calls 2006-11-24 02:37:51 +00:00
Tim Kientzle
13e2d5bcd5 New hooks for reading/writing archives to/from a FILE * or
an in-memory buffer.

PR: bin/86742
2006-11-24 02:00:48 +00:00
Kip Macy
ac39496f20 move CDDL licensed machine description support routine files to cddl directory
update files.sun4v accordingly
2006-11-24 01:56:46 +00:00
Kip Macy
c4a6aff220 Add in initial clean room implementation of hypervisor interfaces 2006-11-23 23:47:53 +00:00
Ruslan Ermilov
ca830b9a74 Use a define instead of a "magic" value. 2006-11-23 21:37:04 +00:00
Ruslan Ermilov
7b0381568e Finish the PG_NX support at the pmap level.
Reviewed by:	alc
2006-11-23 21:36:02 +00:00
Kip Macy
1862415c25 remove CDDL derive hcall.S 2006-11-23 21:29:50 +00:00
Kip Macy
ac4bca68bc Remove system critical files with CDDL origin
with the plan being to create clean room versions
2006-11-23 21:22:06 +00:00
Kip Macy
39c747a0e8 separate out legitimately CDDL code - optimized routines taken from
opensolaries
2006-11-23 19:58:06 +00:00
Yaroslav Tykhiy
91f3a6db54 Add a guideline for naming new sysctl nodes.
Discussed in:	cvs-src (some time ago)
2006-11-23 14:28:19 +00:00