public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* maranello for linux-current [b43 driver]
@ 2012-03-28 22:24 Jim Cromie
       [not found] ` <CAJfuBxz9kVAkkSjFk2PAYLxOsgmrCx-HV0OM7EwV9J5mSzB8dA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Jim Cromie @ 2012-03-28 22:24 UTC (permalink / raw)
  To: Bo Han, netdev

you may have heard of maranello, a project to add
partial packet recovery to 80211, by adding block checksums
on transmit, validating them or re-requesting retransmit
of corrupted blocks.

http://www.cs.umd.edu/projects/maranello/

the code at the page is for 2.6.29-rc2

Ive taken it, did some refactoring to ease merging,
and merged in each linux release, up to 3.3

The refactoring is:

- move code from include/net/mac80211.h utils.c to
drivers/net/wireless/maranello.*
this makes it somewhat common, but more isolated overall,
and reduces merge conflicts due to continued evolution of those files.
I imagine new code would eventually go back to the original files, but
not for a while.

- move most of new code in each *.c file to *_mnlo.c
fn decls added to corresponding *.h
again, this code probably would be moved back to original *.c, but not yet.


After all the merges, I compiled, and found some errors.
I had problems building plain 2.6.29-rc2, and several later releases,
so punted on compiling every step.

The compile errors are fixed on top of the merges, but ideally should be
rearranged to fix each release.  This requires more git-fu than I possess,
and IIUC, netdev ML is more interested in patches to linux-current.

Repeating:  this is only compile tested, I dont have a b43 based wifi card
in my desk/lap-tops.

I do have a WRT54G router, currently running openWRT 10.03
which does have a b43 wifi chip.  I intend to try putting this code
there eventually,
but that may take a while yet, and cannot test maranello itself anyway.

Having split maranello code into new files, I have some misgivings about
that approach - it simplified merges, but at the cost of not seeing
the underlying conflicts.  The compiler told me about some, surely others lurk.

So I guess Im seeking advice:

- what did I break
- what happens when the driver is tested
- whether to repeat this merge-effort w/o the split

- why did earlier releases fail to build
  [jimc@groucho linux-2.6]$ git checkout v2.6.29
  [jimc@groucho build-dell-2]$ make xconfig
  Makefile:23: *** mixed implicit and normal rules.  Stop.
  I also see breakage on unrelated stuff (that builds fine on mainline)
  [jimc@groucho build-dell-2]$ make
  AS      arch/x86/xen/xen-asm_64.o
  /home/jimc/projects/lx/linux-2.6/arch/x86/xen/xen-asm_64.S:
Assembler messages:
  /home/jimc/projects/lx/linux-2.6/arch/x86/xen/xen-asm_64.S:48:
Error: unsupported for `mov'
  ...
the tree is here:
https://github.com/jimc/linux-2.6/tree/maranello/released-split

Im happy to open it up for collaboration if theres interest,
I'll have to figure out how to do that though..
Of course you can clone and fork it.

Its probably premature to concentrate on rework for inclusion,
I think itd be better to get it working on mainline 1st,
but the long view might inform the short-term steps.

thanks
Jim Cromie

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: maranello for linux-current [b43 driver]
       [not found] ` <CAJfuBxz9kVAkkSjFk2PAYLxOsgmrCx-HV0OM7EwV9J5mSzB8dA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2012-03-29  9:07   ` Florian Fainelli
  2012-03-29  9:29     ` Jim Cromie
  0 siblings, 1 reply; 3+ messages in thread
From: Florian Fainelli @ 2012-03-29  9:07 UTC (permalink / raw)
  To: Jim Cromie; +Cc: Bo Han, netdev-u79uwXL29TY76Z2rM5mHXA, linux-wireless

(Adding linux-wireless in CC)

Le 03/29/12 00:24, Jim Cromie a écrit :
> you may have heard of maranello, a project to add
> partial packet recovery to 80211, by adding block checksums
> on transmit, validating them or re-requesting retransmit
> of corrupted blocks.
>
> http://www.cs.umd.edu/projects/maranello/
>
> the code at the page is for 2.6.29-rc2
>
> Ive taken it, did some refactoring to ease merging,
> and merged in each linux release, up to 3.3
>
> The refactoring is:
>
> - move code from include/net/mac80211.h utils.c to
> drivers/net/wireless/maranello.*
> this makes it somewhat common, but more isolated overall,
> and reduces merge conflicts due to continued evolution of those files.
> I imagine new code would eventually go back to the original files, but
> not for a while.
>
> - move most of new code in each *.c file to *_mnlo.c
> fn decls added to corresponding *.h
> again, this code probably would be moved back to original *.c, but not yet.
>
>
> After all the merges, I compiled, and found some errors.
> I had problems building plain 2.6.29-rc2, and several later releases,
> so punted on compiling every step.
>
> The compile errors are fixed on top of the merges, but ideally should be
> rearranged to fix each release.  This requires more git-fu than I possess,
> and IIUC, netdev ML is more interested in patches to linux-current.
>
> Repeating:  this is only compile tested, I dont have a b43 based wifi card
> in my desk/lap-tops.
>
> I do have a WRT54G router, currently running openWRT 10.03
> which does have a b43 wifi chip.  I intend to try putting this code
> there eventually,
> but that may take a while yet, and cannot test maranello itself anyway.
>
> Having split maranello code into new files, I have some misgivings about
> that approach - it simplified merges, but at the cost of not seeing
> the underlying conflicts.  The compiler told me about some, surely others lurk.
>
> So I guess Im seeking advice:
>
> - what did I break
> - what happens when the driver is tested
> - whether to repeat this merge-effort w/o the split
>
> - why did earlier releases fail to build
>    [jimc@groucho linux-2.6]$ git checkout v2.6.29
>    [jimc@groucho build-dell-2]$ make xconfig
>    Makefile:23: *** mixed implicit and normal rules.  Stop.
>    I also see breakage on unrelated stuff (that builds fine on mainline)
>    [jimc@groucho build-dell-2]$ make
>    AS      arch/x86/xen/xen-asm_64.o
>    /home/jimc/projects/lx/linux-2.6/arch/x86/xen/xen-asm_64.S:
> Assembler messages:
>    /home/jimc/projects/lx/linux-2.6/arch/x86/xen/xen-asm_64.S:48:
> Error: unsupported for `mov'
>    ...
> the tree is here:
> https://github.com/jimc/linux-2.6/tree/maranello/released-split
>
> Im happy to open it up for collaboration if theres interest,
> I'll have to figure out how to do that though..
> Of course you can clone and fork it.
>
> Its probably premature to concentrate on rework for inclusion,
> I think itd be better to get it working on mainline 1st,
> but the long view might inform the short-term steps.
>
> thanks
> Jim Cromie
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: maranello for linux-current [b43 driver]
  2012-03-29  9:07   ` Florian Fainelli
@ 2012-03-29  9:29     ` Jim Cromie
  0 siblings, 0 replies; 3+ messages in thread
From: Jim Cromie @ 2012-03-29  9:29 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: Bo Han, netdev, linux-wireless

On Thu, Mar 29, 2012 at 3:07 AM, Florian Fainelli <florian@openwrt.org> wrote:
> (Adding linux-wireless in CC)
>
> Le 03/29/12 00:24, Jim Cromie a écrit :
>>
>> you may have heard of maranello, a project to add
>> partial packet recovery to 80211, by adding block checksums
>> on transmit, validating them or re-requesting retransmit
>> of corrupted blocks.
>>
>> http://www.cs.umd.edu/projects/maranello/
>>
>> the code at the page is for 2.6.29-rc2
>>
>> Ive taken it, did some refactoring to ease merging,
>> and merged in each linux release, up to 3.3
>>

I redid it, this time no refactoring, just conflict resolution
and compile fixes.

Now pushed to:
https://github.com/jimc/linux-2.6/tree/maranello/merges

>> So I guess Im seeking advice:
>>
>> - what did I break
>> - what happens when the driver is tested

Theres a lot to fix still.
- // comments
- long lines
- unused vars
- various FIXMEs
- refactorings for better reuse in other drivers
  (this is large question, probably with lots of answers)

What drivers have FW whose source is available,
and thus hackable for maranello support ?

thanks.
Jim Cromie

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-03-29  9:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-28 22:24 maranello for linux-current [b43 driver] Jim Cromie
     [not found] ` <CAJfuBxz9kVAkkSjFk2PAYLxOsgmrCx-HV0OM7EwV9J5mSzB8dA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-29  9:07   ` Florian Fainelli
2012-03-29  9:29     ` Jim Cromie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox