* Re: Question about mdadm commit d6508f0cfb60edf07b36f1532eae4d9cddf7178b "be more careful about add attempts"
From: NeilBrown @ 2011-10-31 9:19 UTC (permalink / raw)
To: Alexander Lyakas; +Cc: linux-raid
In-Reply-To: <CAGRgLy7G_M=FtdZ9mmDvxxN52+AF+L=0+OaEP=dK7Z+Z5YBYKw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 7950 bytes --]
On Mon, 31 Oct 2011 10:57:25 +0200 Alexander Lyakas <alex.bolshoy@gmail.com>
wrote:
> Thank you for the clarification, Neil!
>
> I was looking at raid_disk, because I am trying to see whether it is
> possible to control into which raid slot a disk is being added (not
> re-added).
>
> Let's say we had raid6 with 4 drives (a,b,c,d), and drives c and d
> failed.Now let's say, that it is decided to replace drive d with a new
> drive e (--add for drive e). Then it's possible that drive e will take
> the raid slot of drive c. So later, if we want to bring back drive c
> into the array, it will have to go into a different slot, resulting in
> a full reconstruction, not bitmap-based reconstruction. While if we
> would have re-added drive c first, it would have done a bitmap-based
> reconstruction, so only the e drive would have required a full
> reconstruction.
>
> So do you think it makes sense to somehow (perhaps through
> disc.raid_disk) instruct the kernel into which slot to add a new
> drive?
You should be able to do that via sysfs.
echo frozen > sync_action
echo $major:$minor > new_dev
echo $slot > dev-$DEVNAME/slot
echo idle > sync_action
something like that.
Seems and odd sort of scenario though.
Note that with RAID1 this is not an issue. A re-added drive can take any
position in a RAID1 array - it doesn't have to be the same one.
NeilBrown
>
> Thanks,
> Alex.
>
>
>
>
>
> On Mon, Oct 31, 2011 at 1:16 AM, NeilBrown <neilb@suse.de> wrote:
> > On Thu, 27 Oct 2011 11:10:54 +0200 Alexander Lyakas <alex.bolshoy@gmail.com>
> > wrote:
> >
> >> Hello Neil,
> >> it makes perfect sense not to turn a device into a spare inadvertently.
> >>
> >> However, with mdadm 3.1.4 under gdb, I tried the following:
> >> - I had a raid6 with 4 drives (sda/b/c/d), their "desc_nr" in the
> >> kernel were respectively (according to GET_DISK_INFO): 0,1,2,3.
> >> - I failed the two last drives (c & d) via mdadm and removed them from the array
> >> - I wiped the superblock on drive d.
> >> - I added the drive d back to the array
> >> So now the array had the following setup:
> >> sda: disc_nr=0, raid_disk=0
> >> sdb: disc_nr=1, raid_disk=1
> >> sdd: disc_nr=4, raid_disk=2
> >> So sdd was added to the array into slot 2, and received disc_nr=4
> >>
> >> - Now I asked to re-add drive sdc back to array. In gdb I followed the
> >> re-add flow, to the place where it fills the mdu_disk_info_t structure
> >> from the superblock read from sdc. It put there the following content:
> >> disc.major = ...
> >> disc.minor = ...
> >> disc.number = 2
> >> disc.raid_disk = 2 (because previously this drive was in slot 2)
> >> disc.state = ...
> >>
> >> Now in gdb I changed disc.number to 4 (to match the desc_nr of sdd).
> >> And then issued ADD_NEW_DISK. It succeeded, and the sdc drive received
> >> disc_nr=2 (while it was asking for 4). Of course, it could not have
> >> received the same raid_disk, because this raid_disk was already
> >> occupied by sdd. So it was added as a spare.
> >>
> >> But you are saying:
> >> > If a device already exists with the same disk.number, a re-add cannot
> >> > succeed, so mdadm doesn't even try.
> >> while in my case it succeeded (while it actually did "add" and not "re-add").
> >
> > We seem to be using word differently.
> > If I ask mdadm to do a "re-add" and it does an "add", then I consider that to
> > be "failure", however you seem to consider it to be a "success".
> >
> > That seems to be the source of confusion.
> >
> >
> >>
> >> That's why I was thinking it makes more sense to check disc.raid_disk
> >> and not disc.number in this check. Since disc.number is not the
> >> drive's role within the array (right?), it is simply a position of the
> >> drive in the list of all drives.
> >> So if you check raid_disk, and see that this raid slot is already
> >> occupied, then, naturally, the drive will be converted to spare, which
> >> we want to avoid.
> >
> > It may well be appropriate to check raid_disk as well, yes. It isn't so easy
> > though which is maybe why I didn't.
> >
> > With 0.90 metadata, the disc.number is the same as disc.raid_disk for active
> > devices. That might be another reason for the code being the way that it is.
> >
> > Thanks,
> > NeilBrown
> >
> >
> >
> >>
> >> And the enough_fd() check protects us from adding a spare to a failed
> >> array (like you mentioned to me previously).
> >>
> >> What am I missing?
> >>
> >> Thanks,
> >> Alex.
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> On Wed, Oct 26, 2011 at 11:51 PM, NeilBrown <neilb@suse.de> wrote:
> >> > On Wed, 26 Oct 2011 19:02:37 +0200 Alexander Lyakas <alex.bolshoy@gmail.com>
> >> > wrote:
> >> >
> >> >> Greetings everybody,
> >> >> I have a question about the following code in Manage.c:Manage_subdevs()
> >> >>
> >> >> disc.number = mdi.disk.number;
> >> >> if (ioctl(fd, GET_DISK_INFO, &disc) != 0
> >> >> || disc.major != 0 || disc.minor != 0
> >> >> || !enough_fd(fd))
> >> >> goto skip_re_add;
> >> >>
> >> >> I do not underatand why the checks: disc.major != 0 || disc.minor != 0
> >> >> are required. This basically means that the kernel already has an
> >> >> rdev->desc_nr equal to disc.number. But why fail the re-add procedure?
> >> >>
> >> >> Let's say that enough_fd() returns true, and we go ahead an issue
> >> >> ioctl(ADD_NEW_DISK). In this case, according to the kernel code in
> >> >> add_new_disk(), it will not even look at info->number. It will
> >> >> initialize rdev->desc_nr to -1, and will allocate a free desc_nr for
> >> >> the rdev later.
> >> >>
> >> >> Doing this with mdadm 3.1.4, where this check is not present, actually
> >> >> succeeds. I understand that this code was added for cases when
> >> >> enough_fd() returns false, which sounds perfectly fine to protect
> >> >> from.
> >> >>
> >> >> I was thinking that this code should actually check something like:
> >> >> if (ioctl(fd, GET_DISK_INFO, &disc) != 0
> >> >> || disk.raid_disk != mdi.disk.raid_disk
> >> >> || !enough_fd(fd))
> >> >> goto skip_re_add;
> >> >>
> >> >> That is to check that the slot that was being occupied by the drive we
> >> >> are trying to add, is already occupied by a different drive (need also
> >> >> to cover cases of raid_disk <0, raid_disk >= raid_disks etc...) and
> >> >> not the desc_nr, which does not have any persistent meaning.
> >> >>
> >> >> Perhaps there are some compatibility issues with old kernels? Or
> >> >> special considerations for ... containers? non-persistent arrays?
> >> >
> >> > The point of this code is to make --re-add fail unless mdadm is certain that
> >> > the kernel will accept the re-add, rather than turn the device into a spare.
> >> >
> >> > If a device already exists with the same disk.number, a re-add cannot
> >> > succeed, so mdadm doesn't even try.
> >> >
> >> > When you say in 3.1.4 it "actually succeeds" - what succeeds? Does it re-add
> >> > the device to the array, or does it turn the device into a spare?
> >> > I particularly do not want --re-add to turn a device into a spare because
> >> > people sometimes use it in cases where it cannot work, their device gets
> >> > turned into a spare, and they lose information that could have been used to
> >> > reconstruct the array.
> >> >
> >> > That that make sense?
> >> >
> >> > NeilBrown
> >> >
> >> >
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> >> the body of a message to majordomo@vger.kernel.org
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply
* Re: powerpc 476, Little-endian, pte fault
From: Santosh Kumar @ 2011-10-31 9:17 UTC (permalink / raw)
To: Shan Hai; +Cc: linux-kernel
In-Reply-To: <20111031074836.GB4910@ubuntu.corp.ad>
i tried this but the fixup_user_fault is called as the path followed
is different. Also i see that the flags passed to handle_mm_fault is 0
i.e the fault is not on a write access. Please let me know if i have
to use this fix some where else too.
thanks
Santosh Kumar .A
Vision without Action is a daydream... Action without Vision is a nightmare...
On 31 October 2011 13:18, Shan Hai <haishan.bai@gmail.com> wrote:
> On Mon, Oct 31, 2011 at 11:00:14AM +0530, Santosh Kumar wrote:
>> KERNEL: linux 2.6.39.4
>> POWERPC: 476, little endian.
>>
>> I am trying to get linux 2.6.39.4 up on PPC 476 i have done done
>> Big-endian to little endian Changes in:
>> 1) bitops header file.
>> 2) while reading the device tree.
>> 3) the PTE read/computed in head_32.S
>> 4) added E bit in the TLB entries.
>>
>> with all the above changes the kernel_init is done but and inited is mounted.
>>
>> But while spawning init process the kernel continuously hits pte
>> faults at address 0x100000fc and never comes out. Please let me know
>> where i should be looking into.
>>
>
> Please check whether the following commit is there in your tree.
> 2efaca927f5cd7ecd0f1554b8f9b6a9a2c329c03
>
> Cheers
> Shan Hai
>
>> -
>> Thanks
>> Santosh Kumar .A
>>
>> Vision without Action is a daydream... Action without Vision is a nightmare...
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at http://www.tux.org/lkml/
>
^ permalink raw reply
* Re: New Feature wanted: Is it possible to let git clone continue last break point?
From: netroby @ 2011-10-31 9:16 UTC (permalink / raw)
To: Jonathan Nieder; +Cc: Git Mail List, Tomas Carnecky, Jeff King
In-Reply-To: <20111031090717.GA24978@elie.hsd1.il.comcast.net>
the example :
i want to clone the freebsd and linux kernel git repo , to view their
source code.
git://github.com/freebsd/freebsd.git
git://github.com/torvalds/linux.git
they are big project, so they are huge.
thanks for your tips. it will let me have a try .
I am current using 256K Adsl , so it is very not stable when clone in progress.
netroby
----------------------------------
http://www.netroby.com
On Mon, Oct 31, 2011 at 17:07, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Hi,
>
> netroby wrote:
>
>> Is it possible to let git clone continue last break point.
>> when we git clone very large project from the web, we may face some
>> interupt, then we must clone it from zero .
>
> You might find [1] useful as a stopgap (thanks, Tomas!).
>
> Something like Jeff's "priming the well with a server-specified
> bundle" proposal[2] might be a good way to make the same trick
> transparent to clients in the future.
>
> Even with that, later fetches, which grab a pack generated on the fly
> to only contain the objects not already fetched, are generally not
> resumable. Overcoming that would presumably require larger protocol
> changes, and I don't know of anyone working on it. (My workaround
> when in a setup where this mattered was to use the old-fashioned
> "dumb" http protocol. It worked fine.)
>
> Hope that helps,
> Jonathan
>
> [1] http://thread.gmane.org/gmane.comp.version-control.git/181380
> [2] http://thread.gmane.org/gmane.comp.version-control.git/164569/focus=164701
> http://thread.gmane.org/gmane.comp.version-control.git/168906/focus=168912
>
^ permalink raw reply
* Re: [PATCH 2/4] mac80211: QoS multicast frames have No Ack policy
From: Christian Lamparter @ 2011-10-31 9:16 UTC (permalink / raw)
To: Thomas Pedersen; +Cc: linux-wireless, devel, johannes, linville
In-Reply-To: <CAG6hwVPNfqriCij5p3Lia2+=ob0AwQjPQFXUssumvBMvu51qTg@mail.gmail.com>
On Monday, October 31, 2011 08:03:12 AM Thomas Pedersen wrote:
> On Sat, Oct 29, 2011 at 2:40 AM, Christian Lamparter <chunkeey@googlemail.com> wrote:
> > ack_policy = *ieee80211_get_qos_ctl(hdr) & ~IEEE80211_QOS_CTL_ACK_POLICY_MASK;
>
> Good idea. Will fix and resubmit.
hmpf, make that: (stupid c&p typo :) )
ack_policy = *ieee80211_get_qos_ctl(hdr) & IEEE80211_QOS_CTL_ACK_POLICY_MASK;
Regards,
Chr
^ permalink raw reply
* Re: HT (Hyper Threading) aware process scheduling doesn't work as it should
From: Henrique de Moraes Holschuh @ 2011-10-31 9:16 UTC (permalink / raw)
To: Artem S. Tashkinov; +Cc: linux-kernel
In-Reply-To: <815860869.50724.1320011477430.JavaMail.mail@webmail17>
On Sun, 30 Oct 2011, Artem S. Tashkinov wrote:
> > Please make sure both are set to 0. If they were not 0 at the time you
> > ran your tests, please retest and report back.
>
> That's 0 & 0 for me.
How idle is your system during the test?
--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
^ permalink raw reply
* Re: [PATCH v8 3/3] ASoC: da7210: Add support for line input and mic
From: Ashish Chavan @ 2011-10-31 9:25 UTC (permalink / raw)
To: Mark Brown
Cc: alsa-devel, kuninori.morimoto.gx, linux-kernel, David, Chen, lrg
In-Reply-To: <20111022093836.GD3316@opensource.wolfsonmicro.com>
On Sat, 2011-10-22 at 10:38 +0100, Mark Brown wrote:
> On Fri, Oct 21, 2011 at 07:09:58PM +0530, Ashish Chavan wrote:
> > DA7210 has three line inputs (AUX1 Left, AUX1 Right and AUX2) and
> > a stereo MIC. This patch adds gain controls for MIC, AUX1, AUX2 as
> > well as INPGA. It also adds a control to set MIC BIAS voltage.
>
> Applied, though the last comment is inaccurate (the micbias should be
> managed by kernel code, you removed the control in an earlier revision).
>
Is this really applied? I am looking at both for-3.2 and for-3.3
branches of linux-2.6-asoc.git and can only see commits till previous
one (i.e. ASoC: da7210: Add support for line out and DAC). I couldn't
find commit corresponding to this patch!
Is there any other place to look for?
Thanks,
-- Ashish (GNU Fan)
^ permalink raw reply
* Re: [PATCH 5/5] distro_tracking_fields: updates for sudo, mtools, grep, and openssh
From: Paul Eggleton @ 2011-10-31 9:08 UTC (permalink / raw)
To: Saul Wold; +Cc: Patches and discussions about the oe-core layer
In-Reply-To: <4EA86F93.4080407@intel.com>
On Wednesday 26 October 2011 21:37:39 Saul Wold wrote:
> > -RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-sudo = "1 month"
> > -RECIPE_LATEST_RELEASE_DATE_pn-sudo = "2011/05/16"
> > +RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-sudo = "2 months"
> > +RECIPE_LATEST_RELEASE_DATE_pn-sudo = "2011/10/21"
>
> These date formats should be MMM DD, YYYY also, for all the data listed
> below also.
I'd been meaning to ask this before - is there a good reason for not being
consistent and using the same format for all date fields in this file?
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
^ permalink raw reply
* Re: New Feature wanted: Is it possible to let git clone continue last break point?
From: Jakub Narebski @ 2011-10-31 9:14 UTC (permalink / raw)
To: netroby; +Cc: Git Mail List
In-Reply-To: <CAEZo+gcj5q2UYnak1+1UG7pPzoeaUr=QLsiCiNXbC_n+JQbKQQ@mail.gmail.com>
netroby <hufeng1987@gmail.com> writes:
> Is it possible to let git clone continue last break point.
> when we git clone very large project from the web, we may face some
> interupt, then we must clone it from zero .
>
> it is bad feeling for low connection speed users.
>
> please help us out.
>
> we need git clone continue last break point
Resuming "git clone" is not currently possible in Git, and it would be
difficult to add such feature to Git; there were several attempts and
neither succeeded.
What you can do is generate a starter bundle out of your repository
(using "git bundle"), and serve this file via HTTP / FTP / BitTorrent,
i.e. some resumable transport. Then you "git clone <bundle file>",
fix up configuration, and fetch the rest since bundle creation.
Though this is possible only if it is your project... or can ask
project administrator to provide bundle.
--
Jakub Narębski
^ permalink raw reply
* [U-Boot] [PATCH v6 4/4] usb: add USB support for Efika
From: Stefano Babic @ 2011-10-31 9:13 UTC (permalink / raw)
To: u-boot
In-Reply-To: <4EAE59AE.509@compulab.co.il>
On 10/31/2011 09:17 AM, Igor Grinberg wrote:
> Hi Stefano,
>
Hi Igor,
>> I do not have seen any open issues, too. If nobody argues and because
>> they are related to USB for i.MX boards, I will apply them to u-boot-imx.
>
> Sorry for jumping in that late.
> I've just got back from my trip.
> There are some issues with: [PATCH 3/4] EHCI: adjust for mx5
> If you have already applied it
Not yet !
>and also because I don't want
> to block this patch set, the issues I've pointed can be fixed
> in a follow up patch.
Jana, can you answer / fix this point ?
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================
^ permalink raw reply
* Regarding A-MPDU status field
From: Rao, Krishna @ 2011-10-31 9:13 UTC (permalink / raw)
To: radiotap-sUITvd46vNxg9hUCZPvPmw@public.gmane.org
[-- Attachment #1: Type: text/plain, Size: 534 bytes --]
Hi everyone,
I noticed that the A-MPDU status field has been listed under 'Suggested Fields' (http://www.radiotap.org/suggested-fields). I feel having this field will make things easier in some scenarios, especially when carrying out performance related analysis.
I would like to request for this field to be made official.
(In case I am missing any context, do let me know. I did briefly check the mailing list, but something might have slipped by).
Regards,
Krishna Rao,
Sr. Lead Engineer,
Qualcomm Atheros Inc.
[-- Attachment #2: Type: text/html, Size: 2682 bytes --]
^ permalink raw reply
* [U-Boot] [PATCH 13/17 V4] iMX28: Add support for DENX M28EVK board
From: Igor Grinberg @ 2011-10-31 9:12 UTC (permalink / raw)
To: u-boot
In-Reply-To: <1319237066-14954-14-git-send-email-marek.vasut@gmail.com>
Hi Marek,
On 10/22/11 00:44, Marek Vasut wrote:
> This contains support for the following components:
> - DUART
> - MMC
> - Both FEC interfaces
> - NAND
> - I2C (RTC, EEPROM)
> - SPI (FLASH)
>
> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Wolfgang Denk <wd@denx.de>
> Cc: Detlev Zundel <dzu@denx.de>
> ---
> MAINTAINERS | 1 +
> board/denx/m28evk/Makefile | 49 ++++++++
> board/denx/m28evk/m28evk.c | 195 ++++++++++++++++++++++++++++++
> boards.cfg | 1 +
> include/configs/m28evk.h | 282 ++++++++++++++++++++++++++++++++++++++++++++
> 5 files changed, 528 insertions(+), 0 deletions(-)
> create mode 100644 board/denx/m28evk/Makefile
> create mode 100644 board/denx/m28evk/m28evk.c
> create mode 100644 include/configs/m28evk.h
>
> V2: Use scrub -y instead of scrub.quiet in the scripts.
> V3: Use CONFIG_ENV_RANGE
> V4: Configure the RAM size to 128MB for V1.1 module
[...]
> diff --git a/board/denx/m28evk/Makefile b/board/denx/m28evk/Makefile
> new file mode 100644
> index 0000000..4037199
> --- /dev/null
> +++ b/board/denx/m28evk/Makefile
[...]
> +
> +clean:
> + rm -f $(OBJS)
> +
> +distclean: clean
> + rm -f $(LIB) core *.bak .depend
These, should not be here anymore, right?
[...]
--
Regards,
Igor.
^ permalink raw reply
* Re: [PATCH v2 1/2] Add new strace-graph package to avoid making perl a dependecy for all of strace
From: Paul Eggleton @ 2011-10-31 9:05 UTC (permalink / raw)
To: McClintock Matthew-B29882,
Patches and discussions about the oe-core layer
In-Reply-To: <CAEsOVNd+p0U59Gpf+mA_cywMhOcnspbhe9xB2JvS2fhF31T1_g@mail.gmail.com>
On Friday 28 October 2011 21:07:44 McClintock Matthew-B29882 wrote:
> On Fri, Oct 28, 2011 at 10:54 AM, Phil Blundell <philb@gnu.org> wrote:
> > That logic sounds reasonable, but I think Richard's point was that it's
> > more conventional to use "=+" rather than an override for prepending.
>
> I sort of forgot that += and =+ are different. Shall I resubmit this patch?
Yes please.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
^ permalink raw reply
* Re: New Feature wanted: Is it possible to let git clone continue last break point?
From: Jonathan Nieder @ 2011-10-31 9:07 UTC (permalink / raw)
To: netroby; +Cc: Git Mail List, Tomas Carnecky, Jeff King
In-Reply-To: <CAEZo+gcj5q2UYnak1+1UG7pPzoeaUr=QLsiCiNXbC_n+JQbKQQ@mail.gmail.com>
Hi,
netroby wrote:
> Is it possible to let git clone continue last break point.
> when we git clone very large project from the web, we may face some
> interupt, then we must clone it from zero .
You might find [1] useful as a stopgap (thanks, Tomas!).
Something like Jeff's "priming the well with a server-specified
bundle" proposal[2] might be a good way to make the same trick
transparent to clients in the future.
Even with that, later fetches, which grab a pack generated on the fly
to only contain the objects not already fetched, are generally not
resumable. Overcoming that would presumably require larger protocol
changes, and I don't know of anyone working on it. (My workaround
when in a setup where this mattered was to use the old-fashioned
"dumb" http protocol. It worked fine.)
Hope that helps,
Jonathan
[1] http://thread.gmane.org/gmane.comp.version-control.git/181380
[2] http://thread.gmane.org/gmane.comp.version-control.git/164569/focus=164701
http://thread.gmane.org/gmane.comp.version-control.git/168906/focus=168912
^ permalink raw reply
* [PATCH] tracing: fix event_subsystem ref counting
From: Ilya Dryomov @ 2011-10-31 9:07 UTC (permalink / raw)
To: linux-kernel; +Cc: Steven Rostedt, idryomov
Fix a bug introduced by e9dbfae5, which prevents event_subsystem from
ever being released.
Ref_count was added to keep track of subsystem users, not for counting
events. Subsystem is created with ref_count = 1, so there is no need to
increment it for every event, we have nr_events for that. Fix this by
touching ref_count only when we actually have a new user -
subsystem_open().
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
---
kernel/trace/trace_events.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 581876f..c212a7f 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -1078,7 +1078,6 @@ event_subsystem_dir(const char *name, struct dentry *d_events)
/* First see if we did not already create this dir */
list_for_each_entry(system, &event_subsystems, list) {
if (strcmp(system->name, name) == 0) {
- __get_system(system);
system->nr_events++;
return system->entry;
}
--
1.7.6.3
^ permalink raw reply related
* [Buildroot] [PATCH 3/3] mplayer: Enable live and tv options
From: Kelvin Cheung @ 2011-10-31 9:05 UTC (permalink / raw)
To: buildroot
In-Reply-To: <1316509288-31106-3-git-send-email-keguang.zhang@gmail.com>
Hi Peter,
What about this patch?
Any problems?
2011/9/20, keguang.zhang at gmail.com <keguang.zhang@gmail.com>:
> From: Kelvin Cheung <keguang.zhang@gmail.com>
>
> 1.Enable TV interface.
> 2.Enable LIVE555 Streaming Media if live555 is available.
>
> Signed-off-by: Kelvin Cheung <keguang.zhang@gmail.com>
> ---
> package/multimedia/mplayer/mplayer.mk | 22 ++++++++++++++++++----
> 1 files changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/package/multimedia/mplayer/mplayer.mk
> b/package/multimedia/mplayer/mplayer.mk
> index f735464..416572c 100644
> --- a/package/multimedia/mplayer/mplayer.mk
> +++ b/package/multimedia/mplayer/mplayer.mk
> @@ -75,6 +75,22 @@ else
> MPLAYER_CONF_OPTS += --disable-mad
> endif
>
> +ifeq ($(BR2_PACKAGE_LIVE555),y)
> +MPLAYER_DEPENDENCIES += live555
> +MPLAYER_CONF_OPTS += --enable-live
> +MPLAYER_LIVE555_CFLAGS += -I$(STAGING_DIR)/usr/include/live/liveMedia
> +MPLAYER_LIVE555_CFLAGS += -I$(STAGING_DIR)/usr/include/live/groupsock
> +MPLAYER_LIVE555_CFLAGS +=
> -I$(STAGING_DIR)/usr/include/live/UsageEnvironment
> +MPLAYER_LIVE555_CFLAGS +=
> -I$(STAGING_DIR)/usr/include/live/BasicUsageEnvironment
> +MPLAYER_LIVE555_LDFLAGS += -lliveMedia
> +MPLAYER_LIVE555_LDFLAGS += -lgroupsock
> +MPLAYER_LIVE555_LDFLAGS += -lUsageEnvironment
> +MPLAYER_LIVE555_LDFLAGS += -lBasicUsageEnvironment
> +MPLAYER_LIVE555_LDFLAGS += -lstdc++
> +else
> +MPLAYER_CONF_OPTS += --disable-live
> +endif
> +
> MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBTHEORA),libtheora)
> MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBPNG),libpng)
> MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_JPEG),jpeg)
> @@ -106,15 +122,13 @@ define MPLAYER_CONFIGURE_CMDS
> --cc="$(TARGET_CC)" \
> --as="$(TARGET_AS)" \
> --charset=UTF-8 \
> - --extra-cflags="$(TARGET_CFLAGS)" \
> - --extra-ldflags="$(TARGET_LDFLAGS)" \
> + --extra-cflags="$(TARGET_CFLAGS) $(MPLAYER_LIVE555_CFLAGS)" \
> + --extra-ldflags="$(TARGET_LDFLAGS) $(MPLAYER_LIVE555_LDFLAGS)" \
> --enable-mad \
> --enable-fbdev \
> $(MPLAYER_CONF_OPTS) \
> --enable-cross-compile \
> --disable-ivtv \
> - --disable-tv \
> - --disable-live \
> --enable-dynamic-plugins \
> )
> endef
> --
> 1.7.1
>
>
--
Best Regards!
Kelvin
^ permalink raw reply
* Re: [PATCH 1/3] ALSA: hdspm - Fix MADI channel format in the status ioctl
From: Takashi Iwai @ 2011-10-31 9:05 UTC (permalink / raw)
To: Adrian Knoth; +Cc: alsa-devel, patch
In-Reply-To: <1319745474-31542-1-git-send-email-adi@drcomp.erfurt.thur.de>
At Thu, 27 Oct 2011 21:57:52 +0200,
Adrian Knoth wrote:
>
> SNDRV_HDSPM_IOCTL_GET_STATUS is supposed to query the current card
> status, so we have to return what we receive on the MADI wire (RX), not
> what we transmit (TX) to others. The latter is a config item to be
> queried via SNDRV_HDSPM_IOCTL_GET_CONFIG.
>
> Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Applied all three patches now. Thanks.
Takashi
> diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
> index 6e2f7ef..60a0b7d 100644
> --- a/sound/pci/rme9652/hdspm.c
> +++ b/sound/pci/rme9652/hdspm.c
> @@ -6253,7 +6253,7 @@ static int snd_hdspm_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
> status.card_specific.madi.madi_input =
> (statusregister & HDSPM_AB_int) ? 1 : 0;
> status.card_specific.madi.channel_format =
> - (statusregister & HDSPM_TX_64ch) ? 1 : 0;
> + (statusregister & HDSPM_RX_64ch) ? 1 : 0;
> /* TODO: Mac driver sets it when f_s>48kHz */
> status.card_specific.madi.frame_format = 0;
>
> --
> 1.7.7.1
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
^ permalink raw reply
* Re: [PATCH 1/1] intel8x0: [v3] Improve performance in virtual environment
From: Takashi Iwai @ 2011-10-31 9:04 UTC (permalink / raw)
To: Konstantin Ozerkov; +Cc: Denis V. Lunev, alsa-devel, patch
In-Reply-To: <1319641861-35052-1-git-send-email-kozerkov@parallels.com>
At Wed, 26 Oct 2011 19:11:01 +0400,
Konstantin Ozerkov wrote:
>
> v3: detection code is x86 and KVM specific, hide it under ifdef
> v2: add detection for virtual environments (KVM and Parallels)
>
> This patch is intended to improve performance in virtualized environments
> like Parallels Desktop or KVM/VirtualBox/QEMU (virtual ICH/AC97 audio).
>
> I/O access is very time-expensive operation in virtual world: VCPU
> can be rescheduled and in the worst case we get more than 10ms delay on
> each I/O access.
>
> In the virtual environment loop exit rule
> (old_civ == current_civ && old_picb == current_picb) is never satisfied,
> because old_picb is never the same as current_picb due to delay inspired
> by reading current_civ. As a result loop ended by timeout and we get 10x
> more I/O operations.
>
> Experimental data from Prallels Desktop 7, RHEL6 guest (I/O ops per
> second):
>
> Original code:
> In Port Counter Callback
> f014 41550 fffff00000179d00 ac97_bm_read_civ+0x000
> f018 41387 fffff0000017a580 ac97_bm_read_picb+0x000
>
> With patch:
> In Port Counter Callback
> f014 4090 fffff00000179d00 ac97_bm_read_civ+0x000
> f018 1964 fffff0000017a580 ac97_bm_read_picb+0x000
>
> Signed-off-by: Konstantin Ozerkov <kozerkov@parallels.com>
> Signed-off-by: Denis V. Lunev <den@openvz.org>
Thanks, applied now.
Takashi
>
> diff --git a/pci/intel8x0.c b/pci/intel8x0.c
> index 6a5b387..6dc302c 100644
> --- a/pci/intel8x0.c
> +++ b/pci/intel8x0.c
> @@ -42,6 +42,12 @@
> #include <asm/pgtable.h>
> #include <asm/cacheflush.h>
>
> +#ifdef CONFIG_KVM_GUEST
> +#include <asm/kvm_para.h>
> +#else
> +#define kvm_para_available() (0)
> +#endif
> +
> MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>");
> MODULE_DESCRIPTION("Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; SiS 7012; Ali 5455");
> MODULE_LICENSE("GPL");
> @@ -77,6 +83,7 @@ static int buggy_semaphore;
> static int buggy_irq = -1; /* auto-check */
> static int xbox;
> static int spdif_aclink = -1;
> +static int inside_vm = -1;
>
> module_param(index, int, 0444);
> MODULE_PARM_DESC(index, "Index value for Intel i8x0 soundcard.");
> @@ -94,6 +101,8 @@ module_param(xbox, bool, 0444);
> MODULE_PARM_DESC(xbox, "Set to 1 for Xbox, if you have problems with the AC'97 codec detection.");
> module_param(spdif_aclink, int, 0444);
> MODULE_PARM_DESC(spdif_aclink, "S/PDIF over AC-link.");
> +module_param(inside_vm, bool, 0444);
> +MODULE_PARM_DESC(inside_vm, "KVM/Parallels optimization.");
>
> /* just for backward compatibility */
> static int enable;
> @@ -400,6 +409,7 @@ struct intel8x0 {
> unsigned buggy_irq: 1; /* workaround for buggy mobos */
> unsigned xbox: 1; /* workaround for Xbox AC'97 detection */
> unsigned buggy_semaphore: 1; /* workaround for buggy codec semaphore */
> + unsigned inside_vm: 1; /* enable VM optimization */
>
> int spdif_idx; /* SPDIF BAR index; *_SPBAR or -1 if use PCMOUT */
> unsigned int sdm_saved; /* SDM reg value */
> @@ -1065,8 +1075,11 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(struct snd_pcm_substream *subs
> udelay(10);
> continue;
> }
> - if (civ == igetbyte(chip, ichdev->reg_offset + ICH_REG_OFF_CIV) &&
> - ptr1 == igetword(chip, ichdev->reg_offset + ichdev->roff_picb))
> + if (civ != igetbyte(chip, ichdev->reg_offset + ICH_REG_OFF_CIV))
> + continue;
> + if (chip->inside_vm)
> + break;
> + if (ptr1 == igetword(chip, ichdev->reg_offset + ichdev->roff_picb))
> break;
> } while (timeout--);
> ptr = ichdev->last_pos;
> @@ -2984,6 +2997,10 @@ static int __devinit snd_intel8x0_create(struct snd_card *card,
> if (xbox)
> chip->xbox = 1;
>
> + chip->inside_vm = inside_vm;
> + if (inside_vm)
> + printk(KERN_INFO "intel8x0: enable KVM optimization\n");
> +
> if (pci->vendor == PCI_VENDOR_ID_INTEL &&
> pci->device == PCI_DEVICE_ID_INTEL_440MX)
> chip->fix_nocache = 1; /* enable workaround */
> @@ -3226,6 +3243,14 @@ static int __devinit snd_intel8x0_probe(struct pci_dev *pci,
> buggy_irq = 0;
> }
>
> + if (inside_vm < 0) {
> + /* detect KVM and Parallels virtual environments */
> + inside_vm = kvm_para_available();
> +#if defined(__i386__) || defined(__x86_64__)
> + inside_vm = inside_vm || boot_cpu_has(X86_FEATURE_HYPERVISOR);
> +#endif
> + }
> +
> if ((err = snd_intel8x0_create(card, pci, pci_id->driver_data,
> &chip)) < 0) {
> snd_card_free(card);
> --
> 1.7.7
>
^ permalink raw reply
* [Bug 42409] Mesa 7.12-devel /dri/r600 compilation error: no makefile found
From: bugzilla-daemon @ 2011-10-31 9:04 UTC (permalink / raw)
To: dri-devel
In-Reply-To: <bug-42409-502@http.bugs.freedesktop.org/>
https://bugs.freedesktop.org/show_bug.cgi?id=42409
Christian König <deathsimple@vodafone.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |NOTABUG
--- Comment #2 from Christian König <deathsimple@vodafone.de> 2011-10-31 02:04:32 PDT ---
That is correct, r600 has been removed. It looks like that git didn't remove
the directory probably because of some stale file in it.
Please remove it manually, to make compiling work again.
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* [U-Boot] [PATCH] pm9261: add mach-type localy for the board
From: RONETIX - Asen Dimov @ 2011-10-31 9:04 UTC (permalink / raw)
To: u-boot
In-Reply-To: <4EAAF1B2.4080701@aribaud.net>
Hi Albert,
On 10/28/2011 09:17 PM, Albert ARIBAUD wrote:
> Hi Asen,
>
> You should copy Ilko as the maintainer, unless you are taking over
> maintainership of this board (and pm9263 and pm9g45), in which case
> please modify MAINTAINERS file as well.
Ok, I will CC: him next time.
>
> Le 28/10/2011 18:10, Asen Chavdarov Dimov a ?crit :
>> Signed-off-by: Asen Chavdarov Dimov<dimov@ronetix.at>
>> ---
>> board/ronetix/pm9261/mach-type.h | 31
>> +++++++++++++++++++++++++++++++
>
> NAK. Do not copy-paste mach-type.h, just add the MACH_TYPE_PM9261
> define in include/configs/pm9261.h.
>
>> board/ronetix/pm9261/pm9261.c | 1 +
>> 2 files changed, 32 insertions(+), 0 deletions(-)
>> create mode 100644 board/ronetix/pm9261/mach-type.h
...
>> #include<common.h>
>> +#include "mach-type.h"
>
> NAK -- you don't need this if you add MACH_TYPE_PM9261.
>
>> #include<asm/sizes.h>
>> #include<asm/io.h>
>> #include<asm/arch/at91sam9_smc.h>
>
> Same applies to the other two boards -- you can actually submit a
> single patch for all three of them.
>
Ok.
> Amicalement,
Regards,
Asen
^ permalink raw reply
* Re: [PATCH] ramoops appears geared to not support ARM
From: Marco Stornelli @ 2011-10-31 8:57 UTC (permalink / raw)
To: Bryan Freed; +Cc: linux-kernel, akpm, msb, seiji.aguchi
In-Reply-To: <CAEYUcX2yF1hw=D8XHMGE7p4Tty+G-vmVudNsFHXUOSTGGKoq=w@mail.gmail.com>
Il 31/10/2011 07:03, Bryan Freed ha scritto:
> On Sun, Oct 30, 2011 at 4:33 AM, Marco Stornelli
> <marco.stornelli@gmail.com> wrote:
>>
>> Il 30/10/2011 03:07, Bryan Freed ha scritto:
>>>
>>> Right, and that is what I do to get ARM working. The reserve() function
>>> calls memblock_reserve() to reserve the memory for RAMOOPS. Keeping it
>>> part of main memory (by not using memblock_remove()) gets the memory
>>> properly mapped.
>>>
>>
>> According to Russell, it needs to use memblock_remove to exclude that piece of memory.
>>
>>> The problem I think we need to resolve is that this makes the ramoops
>>> driver messy.
>>
>> I agree. Indeed I think we don't need to do anything in the driver. The problem is only how to exclude a piece of memory from kernel main memory view. For x86 it's trivial, for ARM it doesn't, but it's still possible.
>>
>> Marco
>
> I will give that (using mem_remove()) a shot tomorrow.
> My recollection on using it in last week's investigation showed the
> ramoops driver ioremap() giving a mapping that did not correspond with
> what the /dev/mem expected to see. I vaguely recall /dev/mem was
> effectively calling __va(0x02000000) which added a base address of
> 0xc0000000 giving 0xc2000000 as the resulting virtual address. The
> ramoops ioremap(), however, gave some arbitrary virtual address for
> this memory.
> The result was that using /dev/mem to read 0x02000000 caused a panic.
I don't understand this point. We have different virtual addresses and
then? The linear transformation with a fixed offset is the normal way
for the kernel to have a virtual address from a physical one when you
are using a memory address directly mapped. The virtual address returned
by ioremap it can be an address not directly mapped, I mean it isn't a
simple linear transformation of the physical address used in input.
It isn't normal to have a kernel panic, even if there is something
wrong, you should receive EINVAL or something similar.
>
> Another problem was that removing just 512KiB of memory for ramoops
> screwed up the system memory initialization. It appeared to me that
> the ARM memory code expected sections to be 1MiB aligned. I could
> memblock_reserve anything, but I could only memblock_remove on a 1MiB
> boundary.
>
It's an arch problem not related to the driver.
> And I cannot shake the feeling that we have a fairly simple disconnect
> here. Ramoops expects to use _device_ memory because it uses
> ioremap(). But the buffer itself is accessed through /dev/mem which
> (as we use it with no mmap() calls) expects to give access to _system_
no mmap calls?! I don't understand how you are using /dev/mem.
Marco
^ permalink raw reply
* Re: [RFC] Change ECC algorithm from userspace
From: Florian Fainelli @ 2011-10-31 9:02 UTC (permalink / raw)
To: linux-mtd
Cc: Javier Martinez Canillas, linux-omap@vger.kernel.org,
Enric Balletbo i Serra, Matthieu CASTET
In-Reply-To: <4EAA845B.1020009@parrot.com>
Hi,
On Friday 28 October 2011 12:30:51 Matthieu CASTET wrote:
> Hi,
>
> Javier Martinez Canillas a écrit :
> > Hello,
> >
> > I want to be able to use 1-bit ECC for the first partition where I
> > save the loader binary and has to be accessed by the ROM boot but use
> > a 4-bit ECC for my rootfs partition.
> >
> > Does anyone have this same issue?
>
> We use raw programming and compute the ecc in software.
We are doing something similar here as well. Our bootloader also requires the
data to be layed out differently (data + ecc interleaved inside a page + oob).
>
> > What is the best approach to store data in a NAND device using
> > different ECC techniques?
> >
> > I've think of two approaches:
> >
> > 1- Adding an ioctl to mtdchar (something like ECCSETBITS) to change
> > the ECC technique used.
>
> But this won't work if there is concurrent acess to mtd. One program may
> want 1 bit ecc other want 4 bits ecc.
>
> > 2- Use a platform data field to notify the omap2 nand driver that the
> > ROM boot only supports 1-bit ECC. So it can use a 1-bit ECC to write
> > and read the first 4 sectors but a 4-bit ECC for the rest.
>
> This may be better.
Would not it better to add infrastructure for allowing per-partition ECC
scheme? This should allow the kernel to also be able to properly handle the
bootloader partitions (bad-block scanning ...).
>
> Matthieu
>
> PS : note that some OMAP ROM support a better protection than Hamming (but
> the details are not public AFAIK)
>
> From OMAP34xx Multimedia Device, Silicon Revision 3.1.x, public version :
>
> Pages can contain errors caused by memory alteration. To correct these
> errors, the ROM code uses ECC,
> based on Hamming codes for SLC NAND and BCH (Bose, Ray-Chaudhuri,
> Hocquenghem) code for
> multilevel cell (MLC) devices. The computed ECC is compared to ECC stored in
> the spare area of the
> corresponding page. If there are uncorrectable errors, the ROM code returns
> with FAIL.
--
Florian
^ permalink raw reply
* [PATCH 2/6] arm/tegra: prepare pinmux code for multiple tegra variants
From: Peter De Schrijver @ 2011-10-31 9:02 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <74CDBE0F657A3D45AFBB94109FB122FF173EDAB4A4@HQMAIL01.nvidia.com>
On Fri, Oct 28, 2011 at 06:18:27PM +0200, Stephen Warren wrote:
> Peter De Schrijver wrote at Friday, October 28, 2011 2:18 AM:
> > On Thu, Oct 27, 2011 at 09:59:49PM +0200, Stephen Warren wrote:
> > > Peter De Schrijver wrote at Tuesday, October 25, 2011 10:54 AM:
> > > > This patch modifies the pinmux code to be useable for multiple tegra variants.
> > > > Some tegra20 specific constants will be replaced by variables which will be
> > > > initialized to the appropriate value at runtime.
> ...
> > > > @@ -668,11 +668,24 @@ void tegra_pinmux_config_pullupdown_table(const struct tegra_pingroup_config *co
> > > > }
> > > > }
> > > >
> > > > +static struct of_device_id tegra_pinmux_of_match[] __devinitdata = {
> > > > + { .compatible = "nvidia,tegra20-pinmux", tegra20_pinmux_init },
> > > > + { },
> > > > +};
> > > > +
> > > > static int __devinit tegra_pinmux_probe(struct platform_device *pdev)
> > > > {
> > > > struct resource *res;
> > > > int i;
> > > > int config_bad = 0;
> > > > + const struct of_device_id *match;
> > > > +
> > > > +#ifdef CONFIG_OF
> > > > + match = of_match_device(tegra_pinmux_of_match, &pdev->dev);
> > >
> > > What if match==NULL? I suppose that "can't" happen with DT, since the
> > > device wouldn't have been probed unless there was a matching entry...
> >
> > Exactly. That was my reasoning as well. We can't get here unless there is a
> > match.
> >
> > > Does this work when booting without DT; IIRC the internal patches I saw
> > > fell back to hard-coding a call to tegra20_pinmux_init() when booting
> > > a static board file (i.e. not booting device-tree)? Perhaps that's in a
> >
Indeed. Something went wrong here.
> > Unfortunately I don't have a tegra20 board which is supported without
> > devicetree.
>
> Oh, that's quite unfortunate. Still, you need to write the code so it's
> expected to work for the non-DT case. Once you've fixed this, if you
> push a complete branch somewhere, I can boot-test it on a few non-DT
> boards. Hopefully I can test on Cardhu too.
I know. But alas I have to base myself on assumptions, which is suboptimal of
course. I will see if I can find a tegra20 board which doesn't require
devicetree here in finland or push a complete branch somewhere.
Cheers,
Peter.
^ permalink raw reply
* Re: [PATCH 2/6] arm/tegra: prepare pinmux code for multiple tegra variants
From: Peter De Schrijver @ 2011-10-31 9:02 UTC (permalink / raw)
To: Stephen Warren
Cc: Russell King, Colin Cross, Olof Johansson,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org
In-Reply-To: <74CDBE0F657A3D45AFBB94109FB122FF173EDAB4A4@HQMAIL01.nvidia.com>
On Fri, Oct 28, 2011 at 06:18:27PM +0200, Stephen Warren wrote:
> Peter De Schrijver wrote at Friday, October 28, 2011 2:18 AM:
> > On Thu, Oct 27, 2011 at 09:59:49PM +0200, Stephen Warren wrote:
> > > Peter De Schrijver wrote at Tuesday, October 25, 2011 10:54 AM:
> > > > This patch modifies the pinmux code to be useable for multiple tegra variants.
> > > > Some tegra20 specific constants will be replaced by variables which will be
> > > > initialized to the appropriate value at runtime.
> ...
> > > > @@ -668,11 +668,24 @@ void tegra_pinmux_config_pullupdown_table(const struct tegra_pingroup_config *co
> > > > }
> > > > }
> > > >
> > > > +static struct of_device_id tegra_pinmux_of_match[] __devinitdata = {
> > > > + { .compatible = "nvidia,tegra20-pinmux", tegra20_pinmux_init },
> > > > + { },
> > > > +};
> > > > +
> > > > static int __devinit tegra_pinmux_probe(struct platform_device *pdev)
> > > > {
> > > > struct resource *res;
> > > > int i;
> > > > int config_bad = 0;
> > > > + const struct of_device_id *match;
> > > > +
> > > > +#ifdef CONFIG_OF
> > > > + match = of_match_device(tegra_pinmux_of_match, &pdev->dev);
> > >
> > > What if match==NULL? I suppose that "can't" happen with DT, since the
> > > device wouldn't have been probed unless there was a matching entry...
> >
> > Exactly. That was my reasoning as well. We can't get here unless there is a
> > match.
> >
> > > Does this work when booting without DT; IIRC the internal patches I saw
> > > fell back to hard-coding a call to tegra20_pinmux_init() when booting
> > > a static board file (i.e. not booting device-tree)? Perhaps that's in a
> >
Indeed. Something went wrong here.
> > Unfortunately I don't have a tegra20 board which is supported without
> > devicetree.
>
> Oh, that's quite unfortunate. Still, you need to write the code so it's
> expected to work for the non-DT case. Once you've fixed this, if you
> push a complete branch somewhere, I can boot-test it on a few non-DT
> boards. Hopefully I can test on Cardhu too.
I know. But alas I have to base myself on assumptions, which is suboptimal of
course. I will see if I can find a tegra20 board which doesn't require
devicetree here in finland or push a complete branch somewhere.
Cheers,
Peter.
^ permalink raw reply
* Re: [RFC] Change ECC algorithm from userspace
From: Florian Fainelli @ 2011-10-31 9:02 UTC (permalink / raw)
To: linux-mtd
Cc: Javier Martinez Canillas, linux-omap@vger.kernel.org,
Enric Balletbo i Serra, Matthieu CASTET
In-Reply-To: <4EAA845B.1020009@parrot.com>
Hi,
On Friday 28 October 2011 12:30:51 Matthieu CASTET wrote:
> Hi,
>
> Javier Martinez Canillas a écrit :
> > Hello,
> >
> > I want to be able to use 1-bit ECC for the first partition where I
> > save the loader binary and has to be accessed by the ROM boot but use
> > a 4-bit ECC for my rootfs partition.
> >
> > Does anyone have this same issue?
>
> We use raw programming and compute the ecc in software.
We are doing something similar here as well. Our bootloader also requires the
data to be layed out differently (data + ecc interleaved inside a page + oob).
>
> > What is the best approach to store data in a NAND device using
> > different ECC techniques?
> >
> > I've think of two approaches:
> >
> > 1- Adding an ioctl to mtdchar (something like ECCSETBITS) to change
> > the ECC technique used.
>
> But this won't work if there is concurrent acess to mtd. One program may
> want 1 bit ecc other want 4 bits ecc.
>
> > 2- Use a platform data field to notify the omap2 nand driver that the
> > ROM boot only supports 1-bit ECC. So it can use a 1-bit ECC to write
> > and read the first 4 sectors but a 4-bit ECC for the rest.
>
> This may be better.
Would not it better to add infrastructure for allowing per-partition ECC
scheme? This should allow the kernel to also be able to properly handle the
bootloader partitions (bad-block scanning ...).
>
> Matthieu
>
> PS : note that some OMAP ROM support a better protection than Hamming (but
> the details are not public AFAIK)
>
> From OMAP34xx Multimedia Device, Silicon Revision 3.1.x, public version :
>
> Pages can contain errors caused by memory alteration. To correct these
> errors, the ROM code uses ECC,
> based on Hamming codes for SLC NAND and BCH (Bose, Ray-Chaudhuri,
> Hocquenghem) code for
> multilevel cell (MLC) devices. The computed ECC is compared to ECC stored in
> the spare area of the
> corresponding page. If there are uncorrectable errors, the ROM code returns
> with FAIL.
--
Florian
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply
* [MIPS]clocks_calc_mult_shift() may gen a too big mult value
From: Chen Jie @ 2011-10-31 9:00 UTC (permalink / raw)
To: linux-mips, LKML
Cc: johnstul, tglx, yanhua, 项宇, zhangfx,
孙海勇
[-- Attachment #1: Type: text/plain, Size: 965 bytes --]
Hi all,
On MIPS, with maxsec=4, clocks_calc_mult_shift() may generate a very
big mult, which may easily cause timekeeper.mult overflow within
timekeeping jobs.
e.g. when clock freq was 250000500(i.e. mips_hpt_frequency=250000500,
and the CPU Freq will be 250000500*2=500001000), mult will be
0xffffde72
Attachment is a script that calculates mult values for CPU Freq
between 400050000 and 500050000, with 1KHz step. It outputs mult
values greater than 0xf0000000:
CPU Freq:500001000, mult:0xffffde72, shift:30
CPU Freq:500002000, mult:0xffffbce4, shift:30
CPU Freq:500003000, mult:0xffff9b56, shift:30
CPU Freq:500004000, mult:0xffff79c9, shift:30
...
The peak value appears around CPU_freq=500001000.
To avoid this, it may need:
1. Supply a bigger maxsec value?
2. In clocks_calc_mult_shift(), pick next mult/shift pair if mult is
too big? Then maxsec will not be strictly obeyed.
3. Change timekeeper.mult to u64?
4. ...
Any idea?
--
Regards,
- Chen Jie
[-- Attachment #2: mult-test.py --]
[-- Type: text/x-python, Size: 511 bytes --]
#!/bin/env python
def clocks_calc_mult_shift(from_, to_, maxsec):
sftacc = 32;
tmp = maxsec * from_ >> 32;
while tmp:
tmp >>= 1
sftacc -= 1
for sft in xrange(32, 0, -1):
tmp = to_ << sft;
tmp += (from_ / 2)
tmp /= from_
if ((tmp >> sftacc) == 0):
break
mult = tmp
shift = sft
return mult, shift
for i in xrange(400050000, 500050000, 1000):
mult, shift = clocks_calc_mult_shift(i/2, 1000000000, 4)
if mult > 0xf0000000:
print "CPU Freq:%d, mult:0x%x, shift:%d" % (i, mult, shift)
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.