Re: [twsocket] 64-Bit Processors Issue
Hi, I don't see why your first version could not work. I have programs which basically does the same thing (calling several Send in a row). And I can't imagine why an AMD processor whould fail doing that ! Me neither. btw: Your second versin is much faster (well 50 iterations probably doesn't do any difference). You can also make the code a little bit clear by removing the test and puting one more send at the end of the loop: for I := 0 to Count-1 do begin // Same buffer assemblage BuildMessage(aString, aBuffer); Socket.PutDataInSendBuffer(@aBuffer[0], Length(aBuffer)); end; Socket.Send(nil, 0); Thanks for the tip. Marcelo - Original Message - From: Francois PIETTE [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Saturday, June 10, 2006 4:31 AM Subject: Re: [twsocket] 64-Bit Processors Issue I don't see why your first version could not work. I have programs which basically does the same thing (calling several Send in a row). And I can't imagine why an AMD processor whould fail doing that ! btw: Your second versin is much faster (well 50 iterations probably doesn't do any difference). You can also make the code a little bit clear by removing the test and puting one more send at the end of the loop: for I := 0 to Count-1 do begin // Same buffer assemblage BuildMessage(aString, aBuffer); Socket.PutDataInSendBuffer(@aBuffer[0], Length(aBuffer)); end; Socket.Send(nil, 0); -- Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html -- [EMAIL PROTECTED] http://www.overbyte.be - Original Message - From: Marcelo Grossi [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Friday, June 09, 2006 10:58 PM Subject: Re: [twsocket] 64-Bit Processors Issue Hello again folks, I managed to fix the bug I told you guys about. Aparently it is endeed an ICS related problem or AMD's fault, can't be concise on that. Here's an overview of the problem with the solution in sample codes: Problem: The server did not received the packet from the client, only the first one. The packets in question were being sent from inside a for loop (small one, about 50 iterations). Here is a sample code of the faulty version of the code (Delphi 6): for I := 0 to Count-1 do begin // This line being the assembly of the buffer, // it is a very clean code and is a very fast function and very few data. // Buffer size estimations are about 20- bytes. BuildMessage(aString, aBuffer); // sends rapid-fire buffers to the server Socket.Send(@aBuffer[0], Length(arBuffer)); end; Solution: Using the cumulative send function provided with ICS the problem is strangely resolved and the server receves ok the buffers (in this case, the single buffer made of the small buffers). Here is the sample code: for I := 0 to Count-1 do begin // Same buffer assemblage BuildMessage(aString, aBuffer); // Only sends the packet when the processing is finished (last iteration) if I = (Count - 1) then Socket.Send(@aBuffer[0], Length(aBuffer)) else Socket.PutDataInSendBuffer(@aBuffer[0], Length(aBuffer)); end; I hope I could be of any help and I'm pretty sure this can be reproduced (using the sample codes above) in any client/server model being the client an AMD 64-Bit processor (can't say much about Intel 64-Bit processors because we could not test it out). Anyways, thank you very much for all your responses! Best regards, Marcelo Grossi - Original Message - From: Arno Garrels [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Friday, June 09, 2006 8:24 AM Subject: Re: [twsocket] 64-Bit Processors Issue Marcelo Grossi wrote: Hello again, I'm new to this list and since I've been getting your messages, I was wondering if anyone got the message I sent about the problem I'm having with the 64-Bit AMD processors. I really really need your help on this, because I've never altered the source code of ICS and the problem mentioned (see below) only happens with users of 64-bit AMD (never tested with Intel) processors. It is very very unlikely that ICS in combination with AMD64 is the reason. I personally had troubles with hardware DEP (nx-flag) caused by another third party component, however I got at least a very strange exception. --- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings
Re: [twsocket] 64-Bit Processors Issue
Hi Peter, All I did for months was try to find the cause of the problem in MY work. Then I decided to try this list, and all you fellow gave me your opinions wich were tested and helped me out in finding the error. And most probably the problem resides in either ICS or AMD64 itself, because believe it or not, ALL AMD64 testers I've got so far presented the same issue (by all I mean the two users with that machine configuration, one AMD Athlon 64 and the other AMD Sempron). With the corrections made both users got themselves a working program (tested). Now, why the error exists and in whom the guilt resides? I really can't tell. Could be in my application, I can't discard that, but I just thought of letting you guys know. Who knows if there's an AMD64 user in this list and he has the time to implement the code below just for testing? Imagine if he manages to reproduce the same problem as I did? We may be discovering a serious (in my opinion) problem with either AMD 64 based processors or the ICSv5 component. I think it's worth the shot ... Marcelo. - Original Message - From: Borosnyay Péter [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Saturday, June 10, 2006 6:13 AM Subject: Re: [twsocket] 64-Bit Processors Issue Hello Marcelo, Your problem has nothing to do with AMD processors. It was by coincidence that the machine that produced the problem had an AMD processor. You should try an Intel one also. As far as I know, socket implementations doesn't depend on or differ by processor type. They should not. When you track down a problem, first always try to find the cause in YOUR work, among the things that YOU did. People (including myself) are feeble and tend to forget this. The more experience one has, the higher the probability is, to forget the above. Colleagues, NEVER forget it ! I wish good luck for everyone ! Cheers, Peter On Fri, 09 Jun 2006 22:58:14 +0200, Marcelo Grossi [EMAIL PROTECTED] wrote: Hello again folks, I managed to fix the bug I told you guys about. Aparently it is endeed an ICS related problem or AMD's fault, can't be concise on that. Here's an overview of the problem with the solution in sample codes: Problem: The server did not received the packet from the client, only the first one. The packets in question were being sent from inside a for loop (small one, about 50 iterations). Here is a sample code of the faulty version of the code (Delphi 6): for I := 0 to Count-1 do begin // This line being the assembly of the buffer, // it is a very clean code and is a very fast function and very few data. // Buffer size estimations are about 20- bytes. BuildMessage(aString, aBuffer); // sends rapid-fire buffers to the server Socket.Send(@aBuffer[0], Length(arBuffer)); end; Solution: Using the cumulative send function provided with ICS the problem is strangely resolved and the server receves ok the buffers (in this case, the single buffer made of the small buffers). Here is the sample code: for I := 0 to Count-1 do begin // Same buffer assemblage BuildMessage(aString, aBuffer); // Only sends the packet when the processing is finished (last iteration) if I = (Count - 1) then Socket.Send(@aBuffer[0], Length(aBuffer)) else Socket.PutDataInSendBuffer(@aBuffer[0], Length(aBuffer)); end; I hope I could be of any help and I'm pretty sure this can be reproduced (using the sample codes above) in any client/server model being the client an AMD 64-Bit processor (can't say much about Intel 64-Bit processors because we could not test it out). Anyways, thank you very much for all your responses! Best regards, Marcelo Grossi - Original Message - From: Arno Garrels [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Friday, June 09, 2006 8:24 AM Subject: Re: [twsocket] 64-Bit Processors Issue Marcelo Grossi wrote: Hello again, I'm new to this list and since I've been getting your messages, I was wondering if anyone got the message I sent about the problem I'm having with the 64-Bit AMD processors. I really really need your help on this, because I've never altered the source code of ICS and the problem mentioned (see below) only happens with users of 64-bit AMD (never tested with Intel) processors. It is very very unlikely that ICS in combination with AMD64 is the reason. I personally had troubles with hardware DEP (nx-flag) caused by another third party component, however I got at least a very strange exception. --- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] 64-Bit Processors Issue
I don't see why your first version could not work. I have programs which basically does the same thing (calling several Send in a row). And I can't imagine why an AMD processor whould fail doing that ! btw: Your second versin is much faster (well 50 iterations probably doesn't do any difference). You can also make the code a little bit clear by removing the test and puting one more send at the end of the loop: for I := 0 to Count-1 do begin // Same buffer assemblage BuildMessage(aString, aBuffer); Socket.PutDataInSendBuffer(@aBuffer[0], Length(aBuffer)); end; Socket.Send(nil, 0); -- Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html -- [EMAIL PROTECTED] http://www.overbyte.be - Original Message - From: Marcelo Grossi [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Friday, June 09, 2006 10:58 PM Subject: Re: [twsocket] 64-Bit Processors Issue Hello again folks, I managed to fix the bug I told you guys about. Aparently it is endeed an ICS related problem or AMD's fault, can't be concise on that. Here's an overview of the problem with the solution in sample codes: Problem: The server did not received the packet from the client, only the first one. The packets in question were being sent from inside a for loop (small one, about 50 iterations). Here is a sample code of the faulty version of the code (Delphi 6): for I := 0 to Count-1 do begin // This line being the assembly of the buffer, // it is a very clean code and is a very fast function and very few data. // Buffer size estimations are about 20- bytes. BuildMessage(aString, aBuffer); // sends rapid-fire buffers to the server Socket.Send(@aBuffer[0], Length(arBuffer)); end; Solution: Using the cumulative send function provided with ICS the problem is strangely resolved and the server receves ok the buffers (in this case, the single buffer made of the small buffers). Here is the sample code: for I := 0 to Count-1 do begin // Same buffer assemblage BuildMessage(aString, aBuffer); // Only sends the packet when the processing is finished (last iteration) if I = (Count - 1) then Socket.Send(@aBuffer[0], Length(aBuffer)) else Socket.PutDataInSendBuffer(@aBuffer[0], Length(aBuffer)); end; I hope I could be of any help and I'm pretty sure this can be reproduced (using the sample codes above) in any client/server model being the client an AMD 64-Bit processor (can't say much about Intel 64-Bit processors because we could not test it out). Anyways, thank you very much for all your responses! Best regards, Marcelo Grossi - Original Message - From: Arno Garrels [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Friday, June 09, 2006 8:24 AM Subject: Re: [twsocket] 64-Bit Processors Issue Marcelo Grossi wrote: Hello again, I'm new to this list and since I've been getting your messages, I was wondering if anyone got the message I sent about the problem I'm having with the 64-Bit AMD processors. I really really need your help on this, because I've never altered the source code of ICS and the problem mentioned (see below) only happens with users of 64-bit AMD (never tested with Intel) processors. It is very very unlikely that ICS in combination with AMD64 is the reason. I personally had troubles with hardware DEP (nx-flag) caused by another third party component, however I got at least a very strange exception. --- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] 64-Bit Processors Issue
Hello Marcelo, Your problem has nothing to do with AMD processors. It was by coincidence that the machine that produced the problem had an AMD processor. You should try an Intel one also. As far as I know, socket implementations doesn't depend on or differ by processor type. They should not. When you track down a problem, first always try to find the cause in YOUR work, among the things that YOU did. People (including myself) are feeble and tend to forget this. The more experience one has, the higher the probability is, to forget the above. Colleagues, NEVER forget it ! I wish good luck for everyone ! Cheers, Peter On Fri, 09 Jun 2006 22:58:14 +0200, Marcelo Grossi [EMAIL PROTECTED] wrote: Hello again folks, I managed to fix the bug I told you guys about. Aparently it is endeed an ICS related problem or AMD's fault, can't be concise on that. Here's an overview of the problem with the solution in sample codes: Problem: The server did not received the packet from the client, only the first one. The packets in question were being sent from inside a for loop (small one, about 50 iterations). Here is a sample code of the faulty version of the code (Delphi 6): for I := 0 to Count-1 do begin // This line being the assembly of the buffer, // it is a very clean code and is a very fast function and very few data. // Buffer size estimations are about 20- bytes. BuildMessage(aString, aBuffer); // sends rapid-fire buffers to the server Socket.Send(@aBuffer[0], Length(arBuffer)); end; Solution: Using the cumulative send function provided with ICS the problem is strangely resolved and the server receves ok the buffers (in this case, the single buffer made of the small buffers). Here is the sample code: for I := 0 to Count-1 do begin // Same buffer assemblage BuildMessage(aString, aBuffer); // Only sends the packet when the processing is finished (last iteration) if I = (Count - 1) then Socket.Send(@aBuffer[0], Length(aBuffer)) else Socket.PutDataInSendBuffer(@aBuffer[0], Length(aBuffer)); end; I hope I could be of any help and I'm pretty sure this can be reproduced (using the sample codes above) in any client/server model being the client an AMD 64-Bit processor (can't say much about Intel 64-Bit processors because we could not test it out). Anyways, thank you very much for all your responses! Best regards, Marcelo Grossi - Original Message - From: Arno Garrels [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Friday, June 09, 2006 8:24 AM Subject: Re: [twsocket] 64-Bit Processors Issue Marcelo Grossi wrote: Hello again, I'm new to this list and since I've been getting your messages, I was wondering if anyone got the message I sent about the problem I'm having with the 64-Bit AMD processors. I really really need your help on this, because I've never altered the source code of ICS and the problem mentioned (see below) only happens with users of 64-bit AMD (never tested with Intel) processors. It is very very unlikely that ICS in combination with AMD64 is the reason. I personally had troubles with hardware DEP (nx-flag) caused by another third party component, however I got at least a very strange exception. --- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- FIGYELEM ! Ennek a levélnek a végén NINCS REKLÁM !!! észrevetted ? -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] 64-Bit Processors Issue
Marcelo Grossi wrote: Hello again, I'm new to this list and since I've been getting your messages, I was wondering if anyone got the message I sent about the problem I'm having with the 64-Bit AMD processors. I really really need your help on this, because I've never altered the source code of ICS and the problem mentioned (see below) only happens with users of 64-bit AMD (never tested with Intel) processors. It is very very unlikely that ICS in combination with AMD64 is the reason. I personally had troubles with hardware DEP (nx-flag) caused by another third party component, however I got at least a very strange exception. --- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] 64-Bit Processors Issue
Hello again folks, I managed to fix the bug I told you guys about. Aparently it is endeed an ICS related problem or AMD's fault, can't be concise on that. Here's an overview of the problem with the solution in sample codes: Problem: The server did not received the packet from the client, only the first one. The packets in question were being sent from inside a for loop (small one, about 50 iterations). Here is a sample code of the faulty version of the code (Delphi 6): for I := 0 to Count-1 do begin // This line being the assembly of the buffer, // it is a very clean code and is a very fast function and very few data. // Buffer size estimations are about 20- bytes. BuildMessage(aString, aBuffer); // sends rapid-fire buffers to the server Socket.Send(@aBuffer[0], Length(arBuffer)); end; Solution: Using the cumulative send function provided with ICS the problem is strangely resolved and the server receves ok the buffers (in this case, the single buffer made of the small buffers). Here is the sample code: for I := 0 to Count-1 do begin // Same buffer assemblage BuildMessage(aString, aBuffer); // Only sends the packet when the processing is finished (last iteration) if I = (Count - 1) then Socket.Send(@aBuffer[0], Length(aBuffer)) else Socket.PutDataInSendBuffer(@aBuffer[0], Length(aBuffer)); end; I hope I could be of any help and I'm pretty sure this can be reproduced (using the sample codes above) in any client/server model being the client an AMD 64-Bit processor (can't say much about Intel 64-Bit processors because we could not test it out). Anyways, thank you very much for all your responses! Best regards, Marcelo Grossi - Original Message - From: Arno Garrels [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Friday, June 09, 2006 8:24 AM Subject: Re: [twsocket] 64-Bit Processors Issue Marcelo Grossi wrote: Hello again, I'm new to this list and since I've been getting your messages, I was wondering if anyone got the message I sent about the problem I'm having with the 64-Bit AMD processors. I really really need your help on this, because I've never altered the source code of ICS and the problem mentioned (see below) only happens with users of 64-bit AMD (never tested with Intel) processors. It is very very unlikely that ICS in combination with AMD64 is the reason. I personally had troubles with hardware DEP (nx-flag) caused by another third party component, however I got at least a very strange exception. --- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
[twsocket] 64-Bit Processors Issue
Hello again, I'm new to this list and since I've been getting your messages, I was wondering if anyone got the message I sent about the problem I'm having with the 64-Bit AMD processors. I really really need your help on this, because I've never altered the source code of ICS and the problem mentioned (see below) only happens with users of 64-bit AMD (never tested with Intel) processors. If anyone had a similar issue concerning 64-bit users please let me know if there is a solution, or else I will be forced to withdraw from using your excelent component, given the growing number os 64-bit users. And I really like your component (a lot). Thanks for the attention, Marcelo Grossi Hello, I'm not entirely sure this is a problem related to ICS but since I could not narrow down another possibility I decided to check up on this list to see if anyone else has (is) esperienced(ing) the same problem as I am. Frist of all I have a client/server program written in Delphi 6. This programa uses your TWSocket component for connection between the clients and my server (both sides are using ICS). For most clients we have absolutely no problem at all, the system works like a charm (the client logs on to the server that sends back to the client some information and clock signals - regular cli/ser model). Recently we had a client that owns an AMD64 processor (AMD Athlon64). This client connection OK to our server, but he doesnt get any data (nor the clock signal) back and the connections times out resulting in an atempt to reconnect, wich starts the cycle all over again. Is there any known issue regarding this? If so, are there any workarounds or fixes? Any information would be much apreciated. Regards, Marcelo Grossi -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] 64-Bit Processors Issue
If anyone had a similar issue concerning 64-bit users please let me know if there is a solution, or else I will be forced to withdraw from using your excelent component, given the growing number os 64-bit users. And I really like your component (a lot). Delphi is a 32-bit compiler, it does not know about 64-bit processors and does not use 64-bit instructions. So there is no way the ICS component, which is pure Delphi Object Pascal, can be doing anything 64-but specific. So your client's problems may be: 1 - buggy Intel microcode emulation by AMD 2 - buggy Windows implementation on AMD 3 - your program uses other components that are buggy on AMD, perhaps using processor specific assembler, such as fastcode or fastmm4? So stopping using ICS is highly unlikely to solve any of your problems. Personally, I've always avoided non-Intel processors and chipsets, the possible incompatibilities and support problems just don't warrant the smaller cost saving or speed improvement over Genuine Intel. Angus -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be