The 2.6.27 merge window closed with the 2.6.27-rc1 release on
July 28. Some 8100 changesets were merged this time around, making
2.6.27 another busy development cycle. A number of interesting things went
in since last week's update;
the most significant changes visible to Linux users include:
There are new drivers for ILI9320 LCD controller chips,
Cobalt server LCD frame buffers,
SH7760/SH7763 integrated LCD controllers,
NXP pca9532 LED controllers,
Philips PCA955x I2C LED controllers,
WMI-based hotkeys on HP laptops,
Maxim MAX73xx I2C port expanders,
Micronas DRX3975D/DRX3977D DVB-T demodulators,
DvbWorld 2102 DVB-S USB2.0 receivers,
MaxLinear MxL5007T silicon tuners,
Renesas SH7763 evaluation boards,
Renesas Solutions AP-325RXA boards,
Renesas R0P7785LC0011RL boards, and
Atmel integrated touchscreens.
Also added is "mISDN," a new, modular ISDN driver intended to replace
older code for a number of ISDN cards. Support for using mISDN
drivers remotely via an IP tunnel has been added.
The Palm T|X handheld computer is now supported.
The tmpfs filesystem has gained support for asynchronous I/O.
The hugetlbfs mechanism can now support multiple huge page sizes.
There is a new directory (/sys/kernel/hugepages) with
information on huge page allocations. The x86 (64-bit) architecture
now supports 1GB pages; PowerPC can go to 16GB.
Most system calls which create file descriptors can now accept a set
of flags; this change allows the race-free establishment of close-on-exec
semantics, requesting non-blocking opens, and more. Developers
wanting to use this capability will have to wait for a version of
glibc which adds the requisite interfaces.
The unmaintained v850 architecture has been removed.
The kexec jump patch set,
which uses the kexec mechanism as an alternative way of implementing
suspend-to-disk, has been merged.
/proc now has a file (called syscall) for each
process; when read, it displays the process's current system call and
the supplied arguments.
Linux users hoping to upgrade their systems in the near future will be
glad to know that
a series of patches designed to make the kernel scale to 4096
processors has been merged.
Changes visible to kernel developers include:
The tracehook mechanism for defining static trace points (described in
this article) has been
merged, along with a number of trace points in the core kernel.
A new, lockless form of get_user_pages() has been added:
int get_user_pages_fast(unsigned long start, int nr_pages, int write,
struct page **pages);
Details of this interface can be found in this article, with the one
note that early versions were called fast_gup() instead.
(See also the related lockless page cache work,
which was also merged).
The long-debated mmu-notifiers patch has
been merged. The notifiers
allow external memory management units (as may be seen in some
graphics cards or in virtualized guests) to be told about decisions
made by the core memory management code.
There is a new framework for debugging boot-time memory
initialization; there's also "a few basic defensive measures" intended
to prevent difficult-to-debug boot problems.
The new function:
int object_is_on_stack(void *obj);
returns a true value if the pointed-to object is on the current kernel
stack.
There is a new macro for issuing warnings:
WARN(condition, format, ...);
It's much like WARN_ON() in that it will produce a full oops
listing; the difference is the added printk()-style format
string and arguments.
A new helper function:
int flush_work(struct work_struct *work);
waits for the specific workqueue job work to finish
executing.
dma_mapping_error() and pci_dma_mapping_error() have
new prototypes:
int dma_mapping_error(struct device *dev, dma_addr_t dma_addr);
int pci_dma_mapping_error(struct pci_dev *hwdev, dma_addr_t dma_addr);
In each case, they have gained a new argument specifying which device
the mapping is being done for.
There are a couple of new radix tree functions:
unsigned int radix_tree_gang_lookup_slot(struct radix_tree_root *root,
void ***results,
unsigned long first_index,
unsigned int max_items);
unsigned int radix_tree_gang_lookup_tag_slot(struct radix_tree_root *root,
void ***results,
unsigned long first_index,
unsigned int max_items,
unsigned int tag);
They are useful for looking up multiple items in a single call.
Slab cache constructors no longer have a pointer to the cache itself
as an argument; they now take a single void * pointer to
the object itself.
The long list of Video4Linux2 ioctl() callbacks has been
moved into its own structure (struct v4l2_ioctl_ops) which is
pointed to by the ioctl_ops member of struct
video_device.
Now begins the long task of finding and fixing all the bugs in all this new
code. If the usual pattern holds, that process will take about two months,
suggesting that we can expect 2.6.27 sometime in October.
Posted Jul 31, 2008 1:41 UTC (Thu) by lacostej (subscriber, #2760)
[Link]
Linux users hoping to upgrade their systems in the near future will be glad to know that a series of patches designed to make the kernel scale to 4096 processors has been merged.
Damn it, I will still have to use out of tree patches for my 8192 processors mythtv box.
Jonathan, thanks for the humor! Always appreciated.
2.6.27 - the rest of the story
Posted Jul 31, 2008 6:26 UTC (Thu) by dlang (✭ supporter ✭, #313)
[Link]
our editor is modest enough not to have mentioned the final line of the announcement
Quote:
Go to kernelnewbies or lwn for more reporting, I'm going to sleep for
twenty-four hours now ;)
/proc/1234/syscall vs /proc/1234/wchan
Posted Jul 31, 2008 8:23 UTC (Thu) by walles (subscriber, #954)
[Link]
/proc/1234/wchan has been there for ages, but seems broken AFAICT (see the linked posts).
/proc/1234/syscall vs /proc/1234/wchan
Posted Aug 3, 2008 21:44 UTC (Sun) by jimparis (subscriber, #38647)
[Link]
I don't get zero, but on my x86_32 machine I always get "_stext". My x86_64 machine gives more reasonable values. My guess would be this option:
config SCHED_NO_NO_OMIT_FRAME_POINTER
def_bool y
prompt "Single-depth WCHAN output"
depends on X86_32
help
Calculate simpler /proc/<PID>/wchan values. If this option
is disabled then wchan values will recurse back to the
caller function. This provides more accurate wchan values,
at the expense of slightly more scheduling overhead.
If in doubt, say "Y".
On x86_32, by default, you will get no frame pointers, so the wchan output is not particularly useful. At least, that's how I read things. See arch/x86/Kconfig, kernel/Makefile, and arch/x86_kernel/process_32.c
By the way, this quadruple(?) negative in kernel/Makefile makes my head hurt:
If it's not true that we're not not omitting them... AAH
2.6.27 - the rest of the story
Posted Aug 2, 2008 20:00 UTC (Sat) by BackSeat (subscriber, #1886)
[Link]
The Palm T|X handheld computer is now supported.
Meaning Linux now runs on that platform? Pointer to more info, please.
Rant: why doesn't Google understand "T|X"?
2.6.27 - the rest of the story
Posted Aug 18, 2008 4:11 UTC (Mon) by SEJeff (subscriber, #51588)
[Link]
Because google supports some extended regexp. Here is an example for you to google for:
+"happy tree friends" +"(date|candy)"
2.6.27 - the rest of the story
Posted Aug 18, 2008 4:14 UTC (Mon) by SEJeff (subscriber, #51588)
[Link]
Sorry forgot to say you just escape it like a normal extended regexp:
+palm +"T\|X"
The above search in google finds exactly what you are looking for.
For better google-foo spend an afternoon glazing over this site:
http://johnny.ihackstuff.com/ghdb.php