While editing the blog, there's two tab named "modify html" and"write"(I use the Chinese interface, so I'm not sure the exact name ofthis two tab)

Whenever there are lines leading with spaces (spaces at the beginningof the line), switching between the two tab would remove one leadingspace of these lines, until no space at the beginning of the line.

<mkl> Is there anyway to check if there is dangling commit in current database?
<mkl> git log --all or gitk --all won't show dangling commit
<Ilari> mkl: You could extract recent such commits from reflogs, but I don't know easy and fast way to cross-reference them with current branches...
<mkl> yes, reflog seems the only way to find the dangling commit, but only if you aware that there is one, and you have to dig into a long log full with hex code.....
<Ilari> mkl: Also, commit followed by checkout moving from something non-symbolic is pretty good indication that something left dangling.
<mkl> yes, but only if you do aware of the situation....
<mkl> and also commit followed by checkout from tag

2008年12月10日 星期三

---1 current stable imageOur current stable image is called 'Om2008.9', available at http://downloads.openmoko.org/releases/Om2008.9/We are sometimes cherry-picking fixes into it, but admittedly not as many as we would like. If someone wants to step up to become stable maintainer for this image and cherry-pick more fixes into it, please let me know.Alternatively, a number of other images are available, Debian, Qt Extended, Android, FDOM, SHR, etc.See http://wiki.openmoko.org/wiki/Distributions for a more comprehensive list.

---2 Mickey's framework milestonesAs many people know, the next big thing for Openmoko will be Mickey's FSO framework around d-bus and Python, and the Paroli telephony UI. See http://wiki.openmoko.org/wiki/OpenmokoFrameworkA few weeks ago, Mickey released milestone 4, available at http://downloads.freesmartphone.org/fso-stable/milestone4.1/In late January, he plans to come out with milestone 5, in late March with milestone 6.See here for a more detailed roadmap: http://trac.freesmartphone.org/roadmap

---3 next major release, Om2009After the next 2 FSO milestones, Openmoko will fork off a stable branch, and spend 2-3 months on testing and bug fixing. This will lead to our next major release, Om2009.The telephony UI will be Paroli, see http://code.google.com/p/paroli/The way things are going right now, we will probably have this release mid-next year.

Ubuntu 8.04 lte, Ubuntu 8.10no matter AHCI or not,installing to a SATA disk, or USB to IDE (WD1600JB WD Caviar SE, IDE 160GB)Stop while installing system around 50% with following reported:

The installer encountered an error copying files to the hard disk:

[Errno 5] Input/output error

This is often due to a faulty CD/DVD disk or drive, or a faulty hard disk. It may help to clean the CD/DVD, to burn the CD/DVD at a lower speed, to clean the CD/DVD drive lens (cleaning kits are often available from electronics suppliers), to check whether the hard disk is old and in need of replacement, or to move the system to a cooler environment.

nVidia+8GB RAM issue, all ok after remove RAM to size

Debian 4.0r3

No common CD-ROM driver was detected........

This seems that AHCI CD-ROM not supported yet

Fedora 9Finished installation, rebooting, then there comes the Welcome menu, system hang after finish [Hardware Profile].nVidia+8GB RAM issue, all ok after remove RAM to size

The server kernel has been compiled with PAE (which solves the problem) and with Xen related things. The latter prevents the installation and use of the NVidia proprietary drivers. Depending on your configuration, this may create another problem, which can be solved by compiling your own kernel, with PAE but without Xen support.

Ubuntu is running in low-graphics modeThe following error was encountered. You may need to update your configuration to solve this.(EE) NVIDIA(0): Failed to load the NVIDIA kernel module!(EE) NVIDIA(0): *** Aborting ***(EE) Screen(s) found, but none have a usable configuration.

I'm trying to install the 169.12 driver (from nvidia's .run file). The kernel I am using is from Ubuntu 8.04, the "2.6.24-16-server" kernel. The installer refuses to install into this kernel: it reportsCode:

List methods - object.method(argument)append(value)count(value) - count the occurances of the given valueextend(list_object)index(value) - find the index of the given valueinsert(pos,value)pop(pos) - remove the element of the given position, the last one if pos not givenremove(value)reverse()sort()sort(cmp)sort(key=len)sort(reverse=True|False)

2008年11月30日 星期日

The number of seeks per second should be fairly bound by your hardware

The rewrite test is important if you are running applications that modify data in place

benchmarks reported as +++++ when that particular benchmark completes too quicklyuse the -n option to specify that more files should be used for the metadata tests-n file_num:file_size_max:file_size_min:dir_numdefault is 16:0:0:1

2008年11月24日 星期一

/* * Early initcalls run before initializing SMP. * * Only for built-in code, not modules. */#define early_initcall(fn) __define_initcall("early",fn,early)

/* * A "pure" initcall has no dependencies on anything else, and purely * initializes variables that couldn't be statically initialized. * * This only exists for built-in code, not for modules. */#define pure_initcall(fn) __define_initcall("0",fn,0)

/** * module_init() - driver initialization entry point * @x: function to be run at kernel boot time or module insertion * * module_init() will either be called during do_initcalls() (if * builtin) or at module insertion time (if a module). There can only * be one per module. */#define module_init(x) __initcall(x);

Rather than taking advantage of multiple traffic classes and virtual lanes, existing PCI-Express adapters only support one virtual channel and one traffic class. Moreover, the primary operating systems, i.e. Microsoft Windows and Linux, only use one traffic channel and one virtual lane. As a result, currently known environments often encounter problems where the total possible bandwidth of a set of PCI-Express adapter cards within an I/O drawer attached to a CPU complex via an I/O hub or switch may far exceed the capabilities of the I/O hub, switch, and/or the front-side bus.

2008年11月4日 星期二

ata_initsubsys_initcall(ata_init);--do nothing but simply create a workqueue "ata"(ata_wq) and a single thread workqueue "ata_aux"(ata_aux_wq)

struct pci_driver ahci_pci_driver::probe=ahci_init_one--each host driver would register a pci_driver to kernel, once the devid/vendorid matches, the probe function will be ran, which is ahci_init_one in this case

ahci_init_one--if any host controller found, it would register devices with scsi layer

ata_host_activate(ahci_sht)ata_host_activate(scsi_host_template )--It would call scsi_host_add to get hooked into scsi layer

The parity blocks are not read on data reads, since this would be unnecessary overhead and would diminish performance. The parity blocks are read, however, when a read of blocks in the stripe and within the parity block in the stripe are used to reconstruct the errant sector. The CRC error is thus hidden from the main computer.

Fails

totally failed, can't read

partially failed, but write-then-read check would failed

Parity check on read is very expensive, a read would require N(disks amount) read.

Can RAID 5 detect 2nd type fails, if no parity check on read?

Shone, my colleague, says that HD itself should be capable of detecting the fail first, while some hardware RAID do have a option to turn on "parity check on read".Does HD have the ability to detect the 2nd type failure?(My guessing)check parity on read, if failed:

write-then-read check for each relative block on each disk, in order to know which block fails

Bad Blocks on Disk DriveThe most common form of disk drive failure is a slow but steady loss of 'blocks' on the disk drive. Blocks can go bad in a number of ways: the thin film of magnetic media can separate or slide on its underlying disk platter; the film of magnetic media can span a pit or gouge in the underlying platter, and eventually, like a soap bubble, it can pop. Although disk drives have filters that prevent dust from entering, the filters will not keep out humidity, and slow corrosion can set in. Mechanical abrasion can occur in several ways: the disk head can smash into the disk; alternately, a piece of broken-off media can temporarily jam under the head, or can skitter across the disk patter. Disk head crashes can be caused by kicking or hitting the CPU cabinet; they can also be caused by vibration induced by cooling fans, construction work in the room, etc. There are many other mechanical causes leading to (permanent) bad blocks. In addition, there are also "soft" or corrupted blocks: in modern hard drives, the size of one bit is so small that ordinary thermal noise (Boltzmann noise) is sufficient to occasionally flip a bit. This occurs so frequently that it is normally handled by the disk firmware: modern disk drives store ECC bits to detect and correct such errors. The number of ECC-corrected errors on a disk can be monitored with smartmon tools. Although on-disk ECC correction is sufficient to correct most soft errors, a tiny fraction will remain uncorrectable. Such soft errors damage the data, but do not render the block permanently (physically) unusable. Other soft errors are described in the next section below.

Over time, bad blocks can accumulate, and, from personal experience, do so as fast as one a day. Once a block is bad, data cannot be (reliably) read from it. Bad blocks are not uncommon: all brand new disk drives leave the factory with hundreds (if not thousands) of bad blocks on them. The hard drive electronics can detect a bad block, and automatically reassign in its place a new, good block from elsewhere on the disk. All subsequent accesses to that block by the operating system are automatically and transparently handled by the disk drive. This feature is both good, and bad. As blocks slowly fail on the drive, they are automatically handled until one day the bad-block lookup table on the hard drive is full. At this point, bad blocks become painfully visible to the operating system: Linux will grind to a near halt, while spewing dma_intr: status=0x51 { DriveReady SeekComplete UnrecoverableError } messages.

Using RAID can mitigate the effect of bad blocks. A Linux md-based software RAID array can be forced to run a check/repair sequence by writing the appropriate command to /sys/block/mdX/md/sync_action (see RAID Administration commands, and also below, for details). During repairs, if a disk drive reports a read error, the RAID array will attempt to obtain a good copy of the data from another disk, and then write the good copy onto the failing disk. Assuming the disk has spare blocks for bad-block relocation, this should trigger the bad-block relocation mechanism of the disk. If the disk no longer has spare blocks, then syslog error messages should provide adequate warning that a hard drive needs to be replaced. In short, RAID can protect against bad blocks, provided that the disk drive firmware is correctly detecting and reporting bad blocks. For the case of general data corruption, discussed below, this need not be the case.

BTW, I don't see any field that is related to the number of ECC-corrected errors on a disk: