Ashok,

Since you addressed this to me, I will respond.  In implementing IPv6, I was 
faced with the daunting problem that I needed to make duplicate changes in the 
large amounts of duplicated code.  I chose to solve that problem by lobbying 
for removing the duplicates.  I lobbied hard to eliminate the duplication 
between Ethernet and WiFi, and that seems to be coming to an end soon.  Then I 
was faced with the ?_singlethread? code that comprised 20 files when I first 
looked at it.  In order for me to proceed, I needed to eliminate ALL of the 
?_singlethread? files, or I would be faced with continual rebasing, which would 
not get us IPv6 in time.

I came up with an architectural solution to the ?_singlethread? problem.  
Simply replace the Thread Queue mechanism with a Co-routine Queue (see 
IOT-509), and leave all the other code alone (as much as possible.)  This makes 
testing much less burdensome, since the tested core logic remains intact.

I found out later that Samsung was approaching this problem piecewise.  I can?t 
wait.  The ?_singlethread? code should never have been created, and now it 
needs to go away quickly so other progress can be made.

Now all the IPv6 work for running on a single thread is done.  We can?t go back.

I propose that we push Gerrit 876 when it builds on all platforms and has been 
tested on at least one.  That will be soon.  I hope that others will recognize 
the importance of the IPv6 cadence and contribute to the testing of the single 
thread solution.

The early part of IPv6 work  on master will concentrate on IOT-477.  This work 
is primarily allowing a general network address to take a round-trip through 
the stack, a task which I didn?t imagine would be necessary when I started this 
work.  This work will touch nearly every part of the stack, so it is sensitive 
to other changes.

?working groups are requesting proposals first before starting implementations? 
 I don?t believe this is a working group issue since it changes neither the API 
or the non-IPv6 function of IoTivity.  I believe the proper way to introduce 
these issues is with JIRA.  In line with that belief, I have spelled out the 
IPv6 implementation issues in seven JIRA issues, which have received no 
comments from you or your team that I can see.  Concerns about JIRA Issues can 
be discussed in comments or on the dev list, but JIRA is the place to start.

Perhaps together we can simplify and clean up the IoTivity stack.  I have 
begged for simplification, and I see only added complexity.  The only way at 
this point to simplify IoTivity is one piece at a time, and I intend to 
continue that process.

I am looking forward to the completion of merging the Ethernet and WiFi 
adapters so we can push the single thread patch to master, allowing the real 
IPv6 work to proceed.  I have a lot of work to do, and I look forward to your 
support.

John Light
Intel OTC OIC Development


From: ASHOKBABU CHANNA [mailto:[email protected]]
Sent: Tuesday, May 05, 2015 8:07 PM
To: Light, John J; iotivity-dev at lists.iotivity.org
Subject: Re: [dev] patch to eliminate all "singlethread" source files in 
IoTivity


Dear John,



Connectivity abstraction supports 4 platforms ? Android, Tizen, Ubuntu and 
Arduino, with multiple adapters (BT, BLE).

Your changes need to be compiled and tested ( basic features) on supported 
platforms before merging it to master.



And your new changes are already in the progress with following gerrits

1) https://gerrit.iotivity.org/gerrit/#/c/783/8 - single thread file removal 
(pushed on Apr20th)

2) https://gerrit.iotivity.org/gerrit/#/c/752/ - single ip adapter for WIFI and 
Ethernet(pushed on Apr15th)

We are handling changes incrementally as multiple platforms are involved.



Your commit, make conflicts with 5 other patch sets and all contributors need 
to rebase the code and test it again for BT and BLE. (If you did not test your 
changes , it will creates more effort)



To avoid these kind of problem, working groups are requesting proposals first 
before starting implementations.

If you want to contribute, please make a proposal first or at least create a 
discussion in developers group(like glib discussion)



Pat, Could you guide how we are going to handle this situation?

Some developers may want to contribute in one platform but it will create 
issues in other platforms and features.

I think handling with proposals first at least make sure people aware of the 
situation.



Regards,

Ashok

------- Original Message -------

Sender : Light, John J<john.j.light at intel.com<mailto:john.j.light at 
intel.com>>

Date : May 02, 2015 05:05 (GMT+09:00)

Title : [dev] patch to eliminate all "singlethread" source files in IoTivity


I pushed to Gerrit a patch 876 which eliminates all ?_singlethread? files, 
responding to JIRA IOT-509.  These files represent a significant fraction of 
technical debt IoTivity has accrued.

My interest in doing this is my concern about applying IPv6 to them.  I decided 
it would be easier to eliminate them than to deal with them.  I started this on 
Monday.

IOT-509 provides the technical approach used.  Here are some stats.

?       43 files affected.

?       27 files with substantial changes.

?       17 ?_singlethread? files deleted.

?       6122 lines changed.

?       381 lines support the new single thread paradigm.

?       450 lines are mods to Ethernet and Wifi linux ?server? code to allow 
testing and debugging on Ubuntu.

?       5390 lines are from the 17 deleted files.

Of course, this required no changes to API or any other externally visible part 
of IoTivity.

I?m sure the performance is no worse than the previous single thread solution.  
(I suspect the performance is indistinguishable from multithread performance.)  
I made no changes to multi-threaded operation.

The only problem at this point is that Jenkins reports that it fails to build 
on Arduino because of an include file problem, which I suspect someone with an 
Arduino environment could find a fix in five minutes.  No change was made to 
Arduino code.

If we push this to master quickly, it will save lots of work for everybody.  
While Gerrit shows conflicts with five other patch sets, I suspect the 
collisions are tiny and can be resolved easily.

John Light
Intel OTC OIC Development





[cid:image001.gif at 01D087D1.1DB61050]

[http://ext.samsung.net/mailcheck/SeenTimeChecker?do=fe69aed3ab8a86cad3ac768e7470b54e3b0d0c0811d73212a1889aa8efbbee47738ed17e7639ce1f641b1a8c451b073656239170f5eb4b5c326bbdfb2ea96a2fcf878f9a26ce15a0]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20150506/c4e8ef50/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.gif
Type: image/gif
Size: 13168 bytes
Desc: image001.gif
URL: 
<http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20150506/c4e8ef50/attachment.gif>

Reply via email to